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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.