新しい投稿を追加しようとしたときに次のphpエラーが表示されます。
警告:array_pop()はパラメータ1が配列であることを想定しています。ブール値は/home/mysite/public_html/blog/wp-content/themes/mytheme/functions.phpの675行目
これが関数です:
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;
}
問題とは何か、どのようにして解決するのかという考えはありますか。
get_the_terms()
は、状況によってはboolean
false
を返します。
用語が割り当てられていない投稿は、空の配列ではなく、誤った結果をもたらします。
https://codex.wordpress.org/Function_Reference/get_the_terms#Returns
それが起こっていることのようですね。それを使うことを試みる前にそれがあなたが期待するtype
であることを確かめるためにその$post_link =
をチェックする必要があります。