2011-03-12 108 views
12

我得到下面的错误...警告:破灭()[function.implode]:无效的参数传递

警告:破灭()[function.implode]:在\可湿性粉剂内容传递的参数无效/themes/mytheme/functions.php上线1335

在...

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>'; 
} 

任何想法如何拦截错误。该网站只有一个标签。

回答

35

由于$ret不是数组,因此出现错误。

为了摆脱错误的,在你的函数的开始,这一行定义它:$ret = array();

看来,get_tags()调用返回的什么都没有,所以在foreach没有运行,这意味着$ ret没有被定义。

+0

这是它。非常感谢您的帮助! +1 – 2011-03-12 04:48:26

2

$ret未被定义时发生。解决方案很简单。正上方$tags = get_tags();,添加以下行:

$ret = array(); 
24

您可以尝试

echo implode(', ', (array)$ret); 
相关问题