开发WordPress主题时如何解决get_the_tags()触发的foreach()无效参数警告
报错原因
get_the_tags() 函数在当前文章未关联任何标签时,会返回布尔值 false,而非可遍历的标签对象数组,直接将这个非数组值传入 foreach() 语法,就会触发「Invalid argument supplied for foreach()」的警告。
修复代码
在遍历前先对返回值做有效性校验,确认其为非空数组后再执行循环逻辑,修改后的完整代码为:
<?php $tags = get_the_tags(); // 校验返回值为有效非空数组,再执行遍历 if ( $tags && is_array( $tags ) ) : foreach($tags as $tag):?> <a href="<?php echo get_tag_link($tag->term_id);?>" class="badge badge-success"> <?php echo $tag->name;?> </a> <?php endforeach; endif; ?>
补充说明
- 无标签的文章会直接跳过这段标签列表的渲染逻辑,不会产生额外报错,也不影响有标签文章的正常展示
- 所有返回值可能为
false或非数组的WordPress查询函数(比如get_the_category()、get_the_terms()等),在配合foreach使用时都建议加同类校验,避免同类警告
内容的提问来源于stack exchange,提问作者A Mohamed Sakeel
相关产品推荐
相关产品推荐

