Список всех подкатегорий из категории

Ответы:

29

Да, вы можете использовать get_categories () используя 'child_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>';  
}

Это получит все категории, которые являются потомками (например, дети и внуки).

Если вы хотите отображать только категории, которые являются прямыми потомками (то есть только дочерними), вы можете использовать '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>';  
}
Bainternet
источник
6
Просто предложение: с популярностью пользовательских типов постов и таксономий, я думаю, было бы лучше предложить get_terms, потому что это помогает познакомить пользователей с общими функциями выборки терминов, где функции категории в некоторой степени специфичны для встроенной таксономии ( хотя не во всех случаях). Вы не должны согласиться, конечно, это всего лишь предложение ...;)
t31os
2
Я согласен, что get_terms () может быть лучше.
Джанго Рейнхардт
@ t31os - не могли бы вы опубликовать ответ, используя, get_termsпожалуйста?
vsync