Usualmente en los listados de artículos, páginas de categorías y taxonomías personalizadas se muestran las categorías a las que pertenece cada post, separadas por comas y vinculadas a la página de la categoría que corresponde.
También suele estar presente en las páginas de las entradas como tal.
La función que ejecuta este listado es the_category.
Este listado tiene un orden alfabético que puede no ser conveniente cuando la entrada pertenece a varias categorías con un orden jerárquico, es decir categorías madre e hija.
Una situación en la que es preferible mostrar el orden jerárquico en vez del alfabético es la geografía: queremos organizar nuestras entradas o tipos de entrada personalizados (custom post type) en categorías de Zona/Región/Ciudad, para nuestro ejemplo: Costa/Atlántico/Soledad. Usando the_category la página nos mostrará las categorías así: Atlántico, Costa, Soledad.
Para cambiar este comportamiento podemos usar el siguiente código dentro de nuestra plantilla, en reemplazo de the_category, en los archivos archive.php, category.php, single.php o index.php:
<?php
$cat_Id = get_the_category($post->ID);
$categories = get_category_parents( $cat_Id[0], TRUE, ' > ' );
$title = get_the_title();
printf( '%1$s <span>en %2$s</span>', get_the_date(), $categories . $title );
?>
Así, nuestro listado se mostrará como una navegación de miga de pan: Costa > Atlántico > Soledad.
Este código muestra además el título de la entrada sin vincular al final del listado.
Deja una respuesta