Php 为foreach()提供的参数无效。。Wordpress

Php 为foreach()提供的参数无效。。Wordpress,php,wordpress,Php,Wordpress,以下代码突然开始出现此错误: <?php foreach (get_the_terms(get_the_ID(), 'loan-club') as $cat) : ?> <img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" /> <?php endforeach; ?&g

以下代码突然开始出现此错误:

<?php foreach (get_the_terms(get_the_ID(), 'loan-club') as $cat) : ?>
<img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" />
<?php endforeach; ?> 

术语_id);?>“title=”在:”/>

有时分类法“loan club”是空的。这可能是问题所在吗?如果是,有人能告诉我正确的代码吗?

foreach
之前添加
If
条件:

<?php
$loan_club = get_the_terms(get_the_ID(), 'loan-club');

if(is_array($loan_club)) {
    foreach ($loan_club as $cat) {
      ?>
        <img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" />
      <?php
    } 
}
?>

term_id);?>“title=”借出地点:“/>
请参阅文档中的get_the_terms()函数:

该函数还可能返回WP_Error或false。如果返回WP_Error或false,这将导致错误和foreach循环中断。


术语_id);?>“title=”在:”/>

注意:对于所有抱怨typecast的人,请注意OP询问了一种最干净的方法,如果数组为空(重点是我的)。true、false、数字或字符串的值不被视为空。
检查此函数的返回类型,它应该是数组或对象get_the_terms(get_the_ID(),'loan club')”有时分类法“loan club”是空的。这就是问题所在。使用if(is_数组(get_the_terms)(get_the_ID(),“loan club”))太棒了!感谢您给出了非常清晰和准确的答案。为什么我以前使用的代码会突然在我的站点上出现错误?