【发布时间】:2021-01-06 13:45:56
【问题描述】:
在我的多语言网站上,有一个在 4 个页面上实现的 foreach 循环。 在英文主页&casetudie 页面和荷兰文主页&projecten 页面。 它在英文主页和 casetudie 页面上运行良好,但在荷兰主页和 projecten 页面上无法正常运行。
当我测试它是否是一个数组时,它在英文页面上是一个数组,而不是在荷兰语页面上。
这个错误是在 2020 年 12 月突然开始的,之前还好。
例如,在 Selectie van onze klanten 看到 https://nitesco.swtest.nl/ 有徽标,这些是由 foreachloop 生成的,https://nitesco.swtest.nl/nl/ 在 Selectie van onze klanten 没有徽标
我希望有人可以帮助我让它再次工作。
代码是:
<div class="container">
<hr class="section__divider">
<section class="section">
<h4 class="section__title"><?php echo trans('Selected clients', 'Selectie van onze klanten') ?></h4>
<ul class="clients-logos">
<?php
$selected_clients = get_field('selected_clients', 'option');
if (is_array($selected_clients) || is_object($selected_clients))
{
foreach ($selected_clients as $client) { ?>
<li><img src="<?=$client['url']?>" alt="<?=$client['alt']?>"></li>
<?php
} ?>
<?php } ?>
</ul>
</section>
</div>
【问题讨论】:
-
“当我测试它是否是一个数组时,它在英文页面上是一个数组,而不是在荷兰语页面上。” - 所以去检查一下选项字段您正在阅读的内容实际上包含 then。
-
尝试添加 var_dump($selected_clients);在 if 语句之前,看看实际返回的是什么。
-
其他“选项”字段是否可以通过 o.k.在荷兰语页面上?
-
只要你有一个
if,总是包含一个else,除非你不在乎它是否没有运行。那是你经常可以放一些调试代码的地方。 -
我添加了 var_dump($selected_clients);并且在英语主页上返回了很多内容,请参见 --- array(25) { [0]=> array(24) { ["ID"]=> int(393) ["id"]=> int(393 ) ["title"]=> string(8) "COLLIERS" ["filename"]=> string(14) "COLLIERS-2.jpg" ["filesize"]=> int(2226) ["url"]= > string(67) "nitesco.swtest.nl/wp-content/uploads/2017/12/COLLIERS-2.jpg" ["link"]=> string(37) "nitesco.swtest.nl/colliers-3" ["alt"]=> string(0) "" enz.... ------ - 在荷兰的家里它又回来了:bool(false)