Перерахуйте всі підкатегорії з категорії


Відповіді:


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>';  
}

6
Лише пропозиція: З популярністю користувальницьких типів публікацій та систематики я вважаю, що було б краще запропонувати get_terms, оскільки це допомагає ознайомити користувачів із загальними функціями отримання терміна, коли функції категорії дещо специфічні для вбудованої систематики ( хоча не у всіх випадках). Звичайно, не потрібно погоджуватися, це лише пропозиція ...;)
t31os

2
Я згоден, що get_terms () може бути кращим.
Джанго Райнхардт

@ t31os - ви можете опублікувати відповідь, скориставшись get_termsбудь ласка?
vsync
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.