2016-03-15 64 views
0

我的一些类别有父类别,有些则不。我需要的是一种仅显示没有父母和孩子类别的类别的方法。获得没有父类别的职位类别,但显示其他非父母 - 子类别

所以,比如我有

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都是父类自己。

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

谢谢。

回答

0

你可以使用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>'; 
    } 
} 
相关问题