Liste de toutes les sous-catégories de la catégorie

Réponses:

29

Oui, vous pouvez utiliser get_categories () en utilisant l' 'child_of'attribut. Par exemple, toutes les sous-catégories de catégorie avec l'ID de 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>';  
}

Cela obtiendra toutes les catégories qui sont des descendants (c'est-à-dire les enfants et les petits-enfants).

Si vous souhaitez afficher uniquement les catégories qui sont des descendants directs (c'est-à-dire des enfants uniquement), vous pouvez utiliser l' 'parent'attribut.

$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
la source
6
Juste une suggestion: avec la popularité des types de messages et des taxonomies personnalisés, je pense qu'il serait préférable de suggérer get_terms, car cela aide à familiariser les utilisateurs avec les fonctions de récupération de termes généraux, alors que les fonctions de catégorie sont quelque peu spécifiques à la taxonomie intégrée ( mais pas dans tous les cas). Vous n'êtes pas obligé d'accepter bien sûr, c'est juste une suggestion ...;)
t31os
2
Je suis d'accord que get_terms () pourrait être mieux.
Django Reinhardt
@ t31os - pourriez-vous poster une réponse en utilisant get_termss'il vous plaît?
vsync