Listar todas as subcategorias da categoria

Respostas:

29

Sim, você pode usar get_categories () usando o 'child_of'atributo Por exemplo, todas as subcategorias da categoria com o 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>';  
}

Isso obterá todas as categorias descendentes (isto é, filhos e netos).

Se você deseja exibir apenas categorias descendentes diretas (ou seja, apenas filhos), pode usar o 'parent'atributo

$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
fonte
6
Apenas uma sugestão: com a popularidade dos tipos de postagem e taxonomias personalizadas, acho que seria melhor sugerir get_terms, porque isso ajuda a familiarizar os usuários com as funções de busca de termos gerais, onde as funções de categoria são um pouco específicas da taxonomia interna ( embora não em todos os casos). Você não tem que concordar, é claro, é apenas uma sugestão ...;)
t31os
2
Concordo que get_terms () pode ser melhor.
Django Reinhardt
@ t31os - você poderia postar uma resposta usando, get_termspor favor?
Vsync