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