Wyświetl wszystkie podkategorie z kategorii

Odpowiedzi:

29

Tak, możesz użyć get_categories () za pomocą 'child_of'atrybutu. Na przykład wszystkie podkategorie kategorii o identyfikatorze 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>';  
}

Otrzyma to wszystkie kategorie potomków (tj. Dzieci i wnuki).

Jeśli chcesz wyświetlać tylko kategorie, które są bezpośrednimi potomkami (tj. Tylko dzieci), możesz użyć 'parent'atrybutu.

$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
źródło
6
Tylko sugestia: Przy popularności niestandardowych typów postów i systematyk uważam, że lepiej byłoby sugerować get_terms, ponieważ pomaga to użytkownikom zapoznać się z funkcjami pobierania ogólnych terminów, ponieważ funkcje kategorii są nieco specyficzne dla wbudowanej taksonomii ( choć nie we wszystkich przypadkach). Oczywiście nie musisz się zgodzić, to tylko sugestia ...;)
t31os 30.03.11
2
Zgadzam się, że get_terms () może być lepszy.
Django Reinhardt
@ t31os - czy możesz napisać odpowiedź używając get_terms?
vsync