我的一些类别有父类别,有些没有。我需要的是一种只显示没有父类和子类别的类别的方法。
所以例如我有
Cat 1
Cat 2
Cat 3
- Cat 3.1
- Cat 3.2
Cat 4
Cat 5
我的帖子上有Cat 1
,Cat 3
和Cat 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_out
Cat 1
,Cat 3
和Cat 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 :(得分: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>';
}
}