如中所述codex, in_category()
检查直接分配给职位的类别。这意味着,如果将帖子分配给子类别而不是父类别,则使用in_category()
父类别将失败。
示例:您有ID为10的类别,它是类别9的子类别。该职位被分配到第10类,而不是第9类。以下代码将检查为false,因为in_category()
检查直接分配给职位的类别:
if( in_category( 9 ) ) {
// ...
}
如果要检查该帖子是否属于类别9或其任何子类,可以使用
post_is_in_descendant_category
中定义为示例的函数
in_category
文件:
if( in_category( 9 ) || post_is_in_descendant_category( 9 ) {
// Post belongs to category 9 or any of its childs.
}
function post_is_in_descendant_category( $cats, $_post = null ) {
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, \'category\' );
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}
但正如我在评论中对你所说的,我不知道你对所提供的信息的确切问题是什么。