我正在寻找一个只返回true或false的函数。该函数将检查被查询的类别存档是否是特定父类别的子类。该函数看起来像这样(类似于is_category()
函数):
if(is_child_of_category('3')){ //do something }
if(is_child_of_category('4')){ //do something else }
if(is_child_of_category('5')){ //do something entirely different }
我查看了文档和论坛,但没有找到任何解决方案,任何想法,如果已经完成或如何去做?
///////////// 附录 ////////////
以下是我在Gavin的帮助下撰写的工作代码:
感谢Gavin
首先使用functions.php文件的函数来获取类别id:
function getCurrentCatID(){
global $wp_query;
if(is_category() || is_single()){
$cat_ID = get_query_var('cat');
}
return $cat_ID;
}
接下来使用cat_is_ancestor_of
$post = $wp_query->post;
$id = getCurrentCatID();
if(cat_is_ancestor_of(3,$ id){include(TEMPLATEPATH。'/ unique.php');}
答案 0 :(得分:2)
但是,如果类别是指定类别的孙子,则返回true。
答案 1 :(得分:0)
我昨天需要类似的东西,所以我写了这个函数,它给我一个包含所有子类别+父类别的数组(如果你愿意,可能会有用,比方说,隐藏所有FAQ上的注释表单-cat帖子及其子女,但在其他人身上显示。)
将$ catname作为var传递并获取一个数组,您可以将其用作参数,例如: in_category()函数。
// Get List of Child Categories
function get_child_cats( $catname ) {
$parentcat = get_cat_ID( '$catname' );
$subcat = get_categories( array('child_of' => $parentcat ) );
$cat_array = array();
array_push($cat_array, $parentcat); // add the parent cat to the array
foreach ($subcat as $sc) {
array_push($cat_array, $sc->cat_ID);
}
return $cat_array;
}