如何获得某个类别的所有子类别?

评论

如此处所述,您也可以使用get_terms():stackoverflow.com/questions/22443352/…

#1 楼

是的,您可以通过'child_of'属性使用get_categories()。例如,所有ID为17的类别的所有子类别:

$args = array('child_of' => 17);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
}


这将获取全部属于后代的类别(即子代和孙代)。

如果只想显示属于直接后代的类别(即仅子代),则可以使用'parent'属性。

$args = array('parent' => 17);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
    echo '<p> Description:'. $category->description . '</p>';
    echo '<p> Post Count: '. $category->count . '</p>';  
}


评论


只是一个建议:随着自定义帖子类型和分类法的流行,我建议建议get_terms会更好,因为这有助于使用户熟悉通用术语提取功能,因为类别函数在某种程度上特定于内置分类法(尽管并非在所有情况下)。当然,您不必同意,这只是一个建议...;)

– t31os
2011年3月30日14:49



我同意get_terms()可能更好。

– Django Reinhardt
16年4月4日在14:08

@ t31os-您可以使用get_terms发布答案吗?

– vsync
18 Mar 30 '18 at 20:23

请注意,默认情况下,这不会获得没有相关帖子的类别。使用hide_empty => false来获取所有类别(根据wordpress的最新版本)

–.s.wadhwa
20-2-4在14:06