has_term not working

时间:2015-12-09 作者:Barry Walsh

我整天都在为这个挠头。我想用has_term 但这就是行不通。我确实收到了这个通知,但我不能百分之百确定它是否相关。我也试过了is_object_in_term() 但在这种情况下,这似乎没有任何作用。

注意:未定义的属性:stdClass::$object_id 在里面/wp-includes/taxonomy.php 在线3613

if( has_term(\'past-attendees\', \'speakercategory\' ) ): 
    echo \'test\'; 
endif;

if(is_object_in_term( $post->ID, \'speakercategory\', \'past-attendees\' ) ):
    echo \'test\'; 
endif;
wp_get_object_terms() 确实返回了术语,因此我无法理解为什么上面两个示例不起作用。任何想法都将不胜感激。

1 个回复
SO网友:Howdy_McGee

您在之前的评论中提到您正在定义$post 直接在条件语句之前。由于这种情况,您需要通过$post 对象以获得所需的结果,否则WordPress将尝试使用global $post 对象,该对象不是您定义的对象,因此会引发错误或意外结果。

参数3用于has_term( $term, $taxonomy, $post ) 表示:

$post
(integer|object) (可选)要检查的帖子instead of the current post.
默认值:null

相关推荐

什么时候应该/不应该使用wp_get_post_Terms与Get_the_Terms?

一位用户在codex中提供了一条注释,指出唯一的区别是get\\u术语使用缓存的数据,我已经知道wp\\u get\\u post\\u术语可以让您通过slug检索数据,但我仍然想知道使用其中一个与另一个的最佳情况是什么。