web-dev-qa-db-fra.com

Avertissement: array_pop () s'attend à ce que le paramètre 1 soit un tableau, booléen

Obtenir l'erreur php suivante lors de l'ajout d'un nouveau message:

Avertissement: array_pop () s'attend à ce que le paramètre 1 soit array. La valeur booléen est donnée dans /home/mysite/public_html/blog/wp-content/themes/mytheme/functions.php à la ligne 675

Voici la fonction:

function glossary_term_permalink($post_link, $post, $leavename, $sample) {
    if (false !== strpos($post_link, '%recipe_cat%')) {
        $glossary_letter = get_the_terms($post->ID, 'recipe_cat');
        $post_link = str_replace('%recipe_cat%', array_pop($glossary_letter)->slug, $post_link);
    }
    return $post_link;
}

Avez-vous une idée du problème et comment le résoudre?

2
frshjb373

get_the_terms() retournera une booleanfalse dans certaines circonstances:

Un article sans terme attribué donne un résultat faux, pas un tableau vide.

https://codex.wordpress.org/Function_Reference/get_the_terms#Returns

On dirait que c'est ce qui se passe. Vous devez vérifier ce $post_link = pour vous assurer qu'il s'agit de la type à laquelle vous vous attendez avant d'essayer de l'utiliser.

1
s_ha_dum