web-dev-qa-db-de.com

Warnung: array_pop () erwartet, dass Parameter 1 ein Array ist, wobei ein Boolescher Wert angegeben wird

Der folgende PHP-Fehler wird angezeigt, wenn versucht wird, einen neuen Beitrag hinzuzufügen:

Warnung: array_pop () erwartet, dass Parameter 1 ein Array ist, ein boolescher Wert, der in /home/mysite/public_html/blog/wp-content/themes/mytheme/functions.php in Zeile 675 angegeben ist

Hier ist die Funktion:

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

Irgendeine Idee was das Problem ist und wie man es löst?

2
frshjb373

get_the_terms() gibt unter bestimmten Umständen ein booleanfalse zurück:

Ein Beitrag ohne zugewiesene Begriffe ergibt ein falsches Ergebnis, kein leeres Array.

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

Es hört sich so an, als ob das passiert. Sie müssen diesen $post_link = überprüfen, um sicherzustellen, dass es sich um den type handelt, den Sie erwarten, bevor Sie versuchen, ihn zu verwenden.

1
s_ha_dum