检查当前 post 是否属于 parent 类别或其子类别
Check if the current post is within a parent category or it's subcategories
我有 200 多个类别,我需要能够检查当前类别(在 category.php 上)是否在 parent 个类别的数组中。
我读过很多方法来检查帖子是否在类别或子类别中,或者一只猫是否是另一只猫的 CHILD 或 PARENT。但是我找不到任何关于检查当前猫是否在 parent 类别数组中的 WP 函数或问题。
这是我要实现的目标:
- Parent 1 (ID 1)
- child 1 (ID 5)
- child 2 (ID 6)
- child 3 (ID 7)
- 盛大child 1 (ID 8)
- Parent 2 (ID 2)
- Parent 3 (ID 3)
- Parent 4 (ID 4)
我需要做这样的事情:
IF( cat_is_child_of( array(1,2,3,4)) ):
Do something amazing
ELSE
The current category is NOT within any of the parent categories for the ID's given
ENDIF
有什么想法吗???
<?php if (
is_post_type_archive( 'inventory' )
|| get_post_type( get_the_ID() ) == 'inventory'
// check if category IS one of these parent cats
|| is_category(array( 25,28,124,297,298,299 ))
// ugly version of checking if this cat is SUB of any parent cats
|| cat_is_ancestor_of(25, get_query_var( 'cat' ))
|| cat_is_ancestor_of(124, get_query_var( 'cat' ))
|| cat_is_ancestor_of(297, get_query_var( 'cat' ))
|| cat_is_ancestor_of(298, get_query_var( 'cat' ))
|| cat_is_ancestor_of(299, get_query_var( 'cat' ))
):
?>
经过大量搜索,只提出检查类别是否有子类别的函数,post 是(仅)子类别,我遇到了一个旧的 post具有有效的功能:
if ( ! function_exists( 'post_is_in_a_subcategory' ) ) {
function post_is_in_a_subcategory( $categories, $_post = null ) {
foreach ( (array) $categories as $category ) {
// get_term_children() only accepts integer ID
$subcats = get_term_children( (int) $category, 'category' );
if ( $subcats && in_category( $subcats, $_post ) )
return true;
}
return false;
}
}
以及我是如何使用它的:
<?php if (
is_post_type_archive( 'inventory' )
|| get_post_type( get_the_ID() ) == 'inventory'
// in one of the parent cats?
|| is_category(array( 25,28,124,297,298,299 ))
// in ANY of the subcats?
|| post_is_in_a_subcategory( array( 25,28,124,297,298,299 ) )
):
?>
原始功能在 Wordpress codex 中,例如,它不在核心中。 http://codex.wordpress.org/Function_Reference/in_category#Testing_if_a_post_is_in_a_descendant_category 它已被删除!
我有 200 多个类别,我需要能够检查当前类别(在 category.php 上)是否在 parent 个类别的数组中。
我读过很多方法来检查帖子是否在类别或子类别中,或者一只猫是否是另一只猫的 CHILD 或 PARENT。但是我找不到任何关于检查当前猫是否在 parent 类别数组中的 WP 函数或问题。
这是我要实现的目标:
- Parent 1 (ID 1)
- child 1 (ID 5)
- child 2 (ID 6)
- child 3 (ID 7)
- 盛大child 1 (ID 8)
- Parent 2 (ID 2)
- Parent 3 (ID 3)
- Parent 4 (ID 4)
我需要做这样的事情:
IF( cat_is_child_of( array(1,2,3,4)) ):
Do something amazing
ELSE
The current category is NOT within any of the parent categories for the ID's given
ENDIF
有什么想法吗???
<?php if (
is_post_type_archive( 'inventory' )
|| get_post_type( get_the_ID() ) == 'inventory'
// check if category IS one of these parent cats
|| is_category(array( 25,28,124,297,298,299 ))
// ugly version of checking if this cat is SUB of any parent cats
|| cat_is_ancestor_of(25, get_query_var( 'cat' ))
|| cat_is_ancestor_of(124, get_query_var( 'cat' ))
|| cat_is_ancestor_of(297, get_query_var( 'cat' ))
|| cat_is_ancestor_of(298, get_query_var( 'cat' ))
|| cat_is_ancestor_of(299, get_query_var( 'cat' ))
):
?>
经过大量搜索,只提出检查类别是否有子类别的函数,post 是(仅)子类别,我遇到了一个旧的 post具有有效的功能:
if ( ! function_exists( 'post_is_in_a_subcategory' ) ) {
function post_is_in_a_subcategory( $categories, $_post = null ) {
foreach ( (array) $categories as $category ) {
// get_term_children() only accepts integer ID
$subcats = get_term_children( (int) $category, 'category' );
if ( $subcats && in_category( $subcats, $_post ) )
return true;
}
return false;
}
}
以及我是如何使用它的:
<?php if (
is_post_type_archive( 'inventory' )
|| get_post_type( get_the_ID() ) == 'inventory'
// in one of the parent cats?
|| is_category(array( 25,28,124,297,298,299 ))
// in ANY of the subcats?
|| post_is_in_a_subcategory( array( 25,28,124,297,298,299 ) )
):
?>
原始功能在 Wordpress codex 中,例如,它不在核心中。 http://codex.wordpress.org/Function_Reference/in_category#Testing_if_a_post_is_in_a_descendant_category 它已被删除!