2011-03-12 10 views
12

estoy recibiendo el error abajo ...Advertencia: implosión() [function.implode]: argumentos inválidos pasaron

Advertencia: implosión() [function.implode]: argumentos inválidos aprobadas en \ wp-content /themes/mytheme/functions.php en la línea 1335

en ...

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

Alguna idea de cómo interceptar el error. El sitio tiene exactamente una etiqueta.

Respuesta

35

Recibirá el error porque $ret no es una matriz.

para deshacerse del error, en el inicio de su función, lo definen con esta línea: $ret = array();

Parece que los get_tags() llamada es nada volver, por lo que el foreach no se ejecuta, lo que significa ese $ ret no está definido.

+0

Eso fue todo. ¡Muchas gracias por la ayuda! +1 –

2

Ocurre cuando $ret no se ha definido. La solución es simple. Justo encima de $tags = get_tags();, agregue la siguiente línea:

$ret = array(); 
24

Usted puede intentar

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