Wordpress:是类别功能的孩子

时间:2010-10-12 06:19:30

标签: wordpress

我正在寻找一个只返回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');}

2 个答案:

答案 0 :(得分:2)

cat_is_ancestor_of

但是,如果类别是指定类别的孙子,则返回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;
}