列出类别中的所有子类别


Answers:


29

是的,您可以使用using 属性使用get_categories()'child_of'。例如,类别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>';  
}

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

2
我同意get_terms()可能更好。
Django Reinhardt

@ t31os-您能使用get_terms请发表答案吗?
vsync
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.