Подтвердить что ты не робот

Предупреждение: 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>';
}

Любые идеи о том, как перехватить ошибку. На сайте есть только один тег.

4b9b3361

Ответ 1

Вы получаете ошибку, потому что $ret не является массивом.

Чтобы избавиться от ошибки, в начале вашей функции определите ее с помощью этой строки: $ret = array();

Похоже, что вызов get_tags() ничего не возвращает, поэтому foreach не запускается, что означает, что $ret не определен.

Ответ 2

Вы можете попробовать

echo implode(', ', (array)$ret);

Ответ 3

Это происходит, когда $ret не определен. Решение прост. Прямо над $tags = get_tags(); добавьте следующую строку:

$ret = array();