只选择儿童类别,而不是孙子

时间:2015-06-02 15:01:14

标签: php wordpress categories

我正在尝试显示哪些类别属于Wordpress中的特定帖子。 我只想展示那些属于catID 10的孩子并且不想向孙子女展示的类别。

所以我现在有了这个hyrarchie(这只是它的一部分)

Areas (parent, catID = 10)
- Pals/Begur (child)
-- Aiguablava (grandchild)
-- Fornells (grandchild)

我只想展示Pals / Begur。

这是代码,它现在显示了孩子和孙子。

<?php
     foreach((get_the_category()) as $childcat) {
          if (cat_is_ancestor_of(10, $childcat)) {
               echo $childcat->cat_name.', ';
          }
     }
?>

2 个答案:

答案 0 :(得分:1)

尝试使用parent功能的get_the_category属性,仅获取某个类别的直接子项。

foreach((get_the_category( 'parent' => 10 )) as $childcat) {
  ...
}

取自Wordpress:

  

parent:仅显示由其ID标识的类别的直接后代(即仅限子级)的类别。这不像'child_of'参数那样工作。此参数没有默认值。 [在2.​​8.4中]

答案 1 :(得分:0)

foreach((get_the_category('parent'=> 10)) as $childcat) {
    $child_cats = $childcat->term_id;                                    
    $args = array(
        'orderby' => 'ID',
        'order' => 'DESC',
        'child_of' => $child_cats,
        'hide_empty' => 0
    );

    $grandchild_categories = get_categories($args);
    foreach ($grandchild_categories as grandchild_category) {
        echo $grandchild_category->cat_name.', ';
    }
}