Elencare tutte le sottocategorie dalla categoria


Risposte:


29

Sì, puoi usare get_categories () usando l' 'child_of'attributo. Ad esempio tutte le sottocategorie di categoria con 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>';  
}

Questo otterrà tutte le categorie che sono discendenti (cioè figli e nipoti).

Se si desidera visualizzare solo le categorie discendenti dirette (ovvero solo i figli), è possibile utilizzare l' 'parent'attributo.

$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
Solo un suggerimento: con la popolarità dei tipi di post personalizzati e delle tassonomie, penso che sarebbe meglio suggerire get_terms, perché questo aiuta a familiarizzare gli utenti con funzioni di recupero del termine generale, dove le funzioni di categoria sono in qualche modo specifiche per la tassonomia integrata ( sebbene non in tutti i casi). Ovviamente non devi essere d'accordo, è solo un suggerimento ...;)
t31os

2
Sono d'accordo che get_terms () potrebbe essere migliore.
Django Reinhardt,

@ t31os - potresti inviare una risposta usando per get_termsfavore?
vsync,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.