Предупреждение: implode() [function.implode]: Пропущенные недопустимые аргументы
Я получаю ошибку ниже...
Предупреждение: implode() [function.implode]: недопустимые аргументы, переданные в \wp-content/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>';
}
Любые идеи о том, как перехватить ошибку. На сайте есть только один тег.
Ответы
Ответ 1
Вы получаете ошибку, потому что $ret
не является массивом.
Чтобы избавиться от ошибки, в начале вашей функции определите ее с помощью этой строки: $ret = array();
Похоже, что вызов get_tags() ничего не возвращает, поэтому foreach не запускается, что означает, что $ret не определен.
Ответ 2
Вы можете попробовать
echo implode(', ', (array)$ret);
Ответ 3
Это происходит, когда $ret
не определен. Решение прост. Прямо над $tags = get_tags();
добавьте следующую строку:
$ret = array();