2011-09-18 3 views
2

le code:Undefined offset: 0 wordpress

function Sail_wp_get_related_posts(){ 
    global $wpdb, $post; 
    if(!$post->ID){return;} 
    $now = current_time('mysql', 1); 
    $tags = wp_get_post_tags($post->ID); 
    $taglist = "'" . $tags[0]->term_id. "'"; 
    $tagcount = count($tags); 
     $m=1; 
    if ($tagcount > 1) { 
     for ($i = 1; $i < $tagcount; $i++) { 
      $taglist = $taglist . ", '" . $tags[$i]->term_id . "'"; 
     } 
    } 

......

i mettre le code dans functions.php PROBLEMES file.The de mise au point: montre Notice: Undefined offset: 0.

comment le corriger? Je vous remercie.

Répondre

3

Vous avez ce code dans cette fonction:

$taglist = "'" . $tags[0]->term_id. "'"; 

Si le poste n'a aucun tag, 0 sera un décalage dans $tags non défini. Pour résoudre le problème, déplacez la ligne $tagcount = count($tags); d'une ligne, puis construisez seulement $taglist si elle est supérieure à zéro. Si elle est égale à zéro, vous voudrez probablement la définir sur une chaîne vide, mais vous voudrez peut-être la définir sur autre chose en fonction de l'utilisation de $taglist.

+0

c'est trop compliqué. pourrais-je faire une condition avant le $ taglist = "'". $ tags [0] -> term_id. "'"; comme si ($ tags) – enjoylife

+0

@enjoylife: J'ai suggéré une condition. Je disais juste que vous devez vérifier la longueur de '$ tags' avant cette ligne. – icktoofay

+0

Oui, je soupçonne aussi votre boucle for 'pour ($ i = 1; $ i <$ tagcount; $ i ++) {' doit être 'pour ($ i = 0; $ i <$ tagcount; $ i ++) {' – drew010