我收到以下错误...
警告:implode()[function.implode]:在第1335行的\ wp-content / themes / mytheme / functions.php中传递的参数无效
...在
function my_get_tags_sitemap(){
if ( !function_exists('wp_tag_cloud') || get_option('cb2_noposttags')) return;
$unlinkTags = get_option('cb2_unlinkTags');
echo '<div class="tags"><h2>Tags</h2>';
if($unlinkTags)
{
$tags = get_tags();
foreach ($tags as $tag){
$ret[]= $tag->name;
}
//ERROR OCCURS HERE
echo implode(', ', $ret);
}
else
{
wp_tag_cloud('separator=, &smallest=11&largest=11');
}
echo '</div>';
}
任何想法如何拦截错误。该网站只有一个标签。
答案 0 :(得分:45)
您收到错误是因为$ret
不是数组。
要消除错误,请在功能开始时使用以下行定义:$ret = array();
似乎get_tags()调用没有返回任何内容,因此foreach没有运行,这意味着$ ret未定义。
答案 1 :(得分:33)
你可以尝试
echo implode(', ', (array)$ret);
答案 2 :(得分:2)
当$ret
尚未定义时,会发生这种情况。解决方案很简单。在$tags = get_tags();
之上,添加以下行:
$ret = array();
答案 3 :(得分:-1)
function my_get_tags_sitemap(){
if ( !function_exists('wp_tag_cloud') || get_option('cb2_noposttags')) return;
$unlinkTags = get_option('cb2_unlinkTags');
echo '<div class="tags"><h2>Tags</h2>';
$ret = []; // here you need to add array which you call inside implode function
if($unlinkTags)
{
$tags = get_tags();
foreach ($tags as $tag){
$ret[]= $tag->name;
}
//ERROR OCCURS HERE
echo implode(', ', $ret);
}
else
{
wp_tag_cloud('separator=, &smallest=11&largest=11');
}
echo '</div>';
}