Get_the_Categories(),但不包括“未归类”的子项

时间:2011-11-20 作者:N2Mystic

在这个函数中,我需要从$categories中排除任何属于“未分类”的子类的类别。

function get_cats(){
    $post_cats= array();
    $categories = get_the_category();
    foreach($categories as $cat){  
        array_push($post_cats, $cat->cat_ID);
    }
    return $post_cats;
}
如果您能提供帮助,请提前感谢。

3 个回复
SO网友:Milo

检查是否$cat->category_parent != 1 (假设uncategorized 具有默认ID 1)。如果您的子类别比一个级别更深,则需要使用get_ancestors 确定顶级类别。

SO网友:Manimaran

应该是这样的,

function get_cats(){
$post_cats= array();
$categories = get_the_category();
  foreach($categories as $cat){
     if($cat->category_parent == 1 || $cat->cat_ID == 1)
     continue;
     array_push($post_cats, $cat->cat_ID);
  }
return $post_cats; }
现在,未分类的类别和此子类别已过滤。如果需要,可以从管理员中删除此类别。

检查this blog

SO网友:brownian

我相信这会有帮助foreach):

if( $cat->cat_name != \'Uncategorized\' ) {
    array_push( $post_cats, $cat->cat_ID );
}
Update:

您可能想使用post_is_in_descendant_category 功能:

if( $cat->cat_name != \'Uncategorized\'
    && !post_is_in_descendant_category(
           get_term_by( \'name\', \'Uncategorized\', \'category\' ),
           $post
        )
) {
    array_push( $post_cats, $cat->cat_ID );
}
(抱歉,未测试)

不,那个post_is_in_descendant_category 应在functions.php, 请检查链接。

结束

相关推荐

Posts vs Pages and categories

我正在为图书馆的收藏/档案室创建一个基本上静态的网站。由于我希望大多数内容只创建一次,并随着时间的推移慢慢添加或修改,而不是常规的帖子,所以我的第一个倾向是将所有内容都变成一个页面。另一方面,我有两个或三个类别的页面/帖子,我非常希望能够生成这些页面/帖子的列表,除了使用类别和帖子,我想不出一个好的方法来做到这一点。我知道有一个插件允许您使用类别标记页面,但我这样做时get\\u帖子并不总是有效。我有需要多个类别并相互重叠的内容,这一事实是否比这一内容基本上应该是静态的更重要?我有一个由专门针对特定主题的