17

How can I get all subcategories from a certain category?

29

Yes, you can use get_categories() using 'child_of' attribute. For example all sub categories of category with the ID of 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>';  
}

This will get all categories that are descendants (i.e. children & grandchildren).

If you want to display only categories that are direct descendants (i.e. children only) you can use 'parent' attribute.

$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
    Just a suggestion: With the popularity of custom post types and taxonomies, i feel it would be better to be suggesting get_terms, because this helps familiarise users with general term fetching functions, where as the category functions are somewhat specific to the built-in taxonomy(though not in all cases). You don't have to agree of course, it's just a suggestion... ;) – t31os Mar 30 '11 at 14:49
  • 2
    I agree that get_terms() might be better. – Django Reinhardt Apr 4 '16 at 14:08
  • @t31os - could you post an answer using get_terms please? – vsync Mar 30 '18 at 20:23

protected by Community Dec 26 '13 at 13:26

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.