您正在填充$term
具有多维数组的变量,但对其进行类型和值检查(===
) 与字符串相对。
第二,你说术语是\'des_1\'
和\'des_1\'
(带下划线),但正在检查\'des-1\'
(带破折号)。
wp_get_post_terms
将返回一个术语对象数组,因此您最好使用has_term()
用于检查职位上是否使用了该术语。
提示:这可能可读性更好(而且更短):
$cstat = in_array( $stat, ["draft", "pending"] )
$cterm = has_term( \'des_1\', \'des_num\', $post );
return $cstat && $cterm;
甚至更短(但可读性较差):
return in_array( $stat, ["draft", "pending"] ) && has_term( \'des_1\', \'des_num\', $post );