Listar todas las subcategorías de la categoría

Respuestas:

29

Sí, puedes usar get_categories () usando el 'child_of'atributo. Por ejemplo, todas las subcategorías de categoría con el 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>';  
}

Esto obtendrá todas las categorías que son descendientes (es decir, hijos y nietos).

Si desea mostrar solo categorías que son descendientes directos (es decir, solo hijos), puede usar el '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
fuente
66
Solo una sugerencia: con la popularidad de los tipos de publicaciones y taxonomías personalizadas, creo que sería mejor sugerir get_terms, porque esto ayuda a familiarizar a los usuarios con las funciones de obtención de términos generales, donde las funciones de categoría son algo específicas de la taxonomía incorporada ( aunque no en todos los casos). No tiene que estar de acuerdo, por supuesto, es solo una sugerencia ...;)
t31o
2
Estoy de acuerdo en que get_terms () podría ser mejor.
Django Reinhardt
@ t31os - ¿podría publicar una respuesta usando get_termspor favor?
vsync