获取WordPress帖子的顶级类别名称而不是slug

时间:2016-03-16 17:32:51

标签: php wordpress

我发现很多关于人们拉扯slug或者WordPress帖子顶级类别的ID的帖子,但我需要特别提到这个名字。

这是目前的结构:

Spring 2016 (slug 2016-spring)
    Feature (feature)
    Giving Highlights (giving-highlights)
    etc.

我的代码在拉顶级slug / nicename(2016年春天)时非常有效,但我需要它来返回名称/ cat_name(2016年春季)。

我正在使用的代码是:

$category = get_the_category();
$cat_tree = get_category_parents($category[0]->term_id, FALSE, ':', TRUE);
$top_cat = split(':',$cat_tree);
$parent = $top_cat[0];
echo $parent;

为了取名,我需要改变什么?

2 个答案:

答案 0 :(得分:1)

为什么不尝试使用get_category()简单地提取父类别的名称?

试试这个

$parent = $top_cat[0];
$pcat = get_category( $parent ) ;

// Then 
echo $pcat->cat_name ; 
// OR
echo $pcat->category_nicename ; 

答案 1 :(得分:1)

这是我在当前环境中使用的解决方案:

$categories = get_the_category();
if ( ! empty($categories)) {
    if (sizeOf($categories) > 1) {
        $output = $categories[1]->name;
    } elseif (sizeOf($categories) == 1) {
        $output = $categories[0]->name;
    } else {
        $output = 'Please Assign A Category';
    }
}

我们的情况是某些帖子只使用顶级类别,而其他帖子则使用更深层次的类别进行排序。你的情况显然会有所不同;如果您的所有帖子在树中至少有1个深度,您可以使用$output=$categories[1]->name;行,这样就可以了。为了以防万一,我们的情况会更加强大。