Pytanie Ostrzeżenie: implode () [function.implode]: przekazano niepoprawne argumenty


Dostaję błąd poniżej ...

Ostrzeżenie: implode () [function.implode]: Niepoprawne argumenty przekazane w \ wp-content / themes / mytheme / functions.php na linii 1335

w...

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

Wszelkie pomysły, jak przechwycić błąd. Witryna ma dokładnie jeden tag.


13
2018-03-12 01:26


pochodzenie




Odpowiedzi:


Otrzymujesz błąd, ponieważ $ret nie jest tablicą.

Aby pozbyć się błędu, na początku swojej funkcji zdefiniuj go w tym wierszu: $ret = array();

Wygląda na to, że wywołanie get_tags () niczego nie zwraca, więc foreach nie jest uruchamiany, co oznacza, że ​​$ ret nie jest zdefiniowane.


36
2018-03-12 01:28



To było to. Bardzo dziękuję za pomoc! +1 - Scott B


Możesz spróbować

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

28
2018-01-26 07:44





Zdarza się, gdy $ret nie zostało zdefiniowane. Rozwiązanie jest proste. Zaraz nad $tags = get_tags();, dodaj następujący wiersz:

$ret = array();

2
2018-03-12 01:29