【问题标题】:Get post categories without parent category, but show other non parent-child categories获取没有父类别的帖子类别,但显示其他非父子类别
【发布时间】:2016-06-30 23:24:51
【问题描述】:

我的某些类别有父类别,而有些则没有。我需要的是一种只显示没有父类别和子类别的类别的方法。

比如我有

Cat 1
Cat 2 
Cat 3
 - Cat 3.1
 - Cat 3.2
Cat 4
Cat 5

我的帖子上有Cat 1Cat 3Cat 3.1(固定链接原因——我也需要设置父类别)。有了这个:

$category_out=array();
$categories = get_the_category();
foreach ($categories as $category_one) {
    $category_out[] ='<a class="' .$category_one->slug.'" href="'.esc_url( get_category_link( $category_one->term_id ) ).'">' .$category_one->name.'</a>';
}
$category_out = implode( '', $category_out);

我会在我的$category_outCat 1Cat 3Cat 3.1 下车。而且我不希望Cat 3 出现在列表中。

我试过了

$category_out=array();
$categories = get_the_category();
foreach ($categories as $category_one) {
    if ($category_one->category_parent != 0) {
        $category_out[] ='<a class="' .$category_one->slug.'" href="'.esc_url( get_category_link( $category_one->term_id ) ).'">' .$category_one->name.'</a>'
    }
}
$category_out = implode( '', $category_out);

但这仅显示Cat 3.1,因为从技术上讲,Cat 1-5 都是它们自己的父类别。

有没有办法在类别列表中仅显示现有父类别的子类别和其他非父子相关类别?

谢谢。

【问题讨论】:

    标签: php wordpress categories


    【解决方案1】:

    您可以使用 get_term_children 来实现这一点!

    循环:

    foreach ($categories as $category_one) {
        if (empty(get_term_children($category_one->term_id,$category_one->taxonomy))){
        $category_out[] ='<a class="' .$category_one->slug.'" href="'.esc_url( get_category_link( $category_one->term_id ) ).'">' .$category_one->name.'</a>';
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多