我的一些类别有父类别,有些没有。我需要的是一种仅显示没有父类别和子类别的类别的方法。
所以例如我有
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
都是自己的父类别。
有没有办法在类别列表中仅显示现有父类别和其他非父子相关类别的子类别?
谢谢。
您可以使用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>';
}
}