¿Desea mostrar solo la categoría secundaria en su bucle de publicación de WordPress?
La mayoría de los temas de WordPress mostrarán automáticamente todas las categorías de una publicación, incluidas las categorías de padres e hijos. ¿Qué pasa si solo desea mostrar la categoría secundaria?
En este artículo, le mostraremos cómo mostrar fácilmente solo la categoría secundaria en su bucle de publicación de WordPress.
Por qué y cuándo desearía mostrar solo la categoría infantil
WordPress viene con dos taxonomías predeterminadas llamadas categorías y etiquetas para organizar su contenido. Muchos sitios web utilizan etiquetas para temas específicos de cada artículo y categorías para secciones más amplias del sitio web.
Luego están los sitios web que utilizan categorías para definir la estructura de su sitio web. Por ejemplo, un sitio web de viajes puede usar categorías para diferentes tipos de destinos, o un blog de comida puede usarlas para diferentes tipos de cocinas.
Las categorías también son jerárquicas, lo que significa que puede crear categorías secundarias (o subcategorías) para una categoría principal para organizar aún más su contenido. Por ejemplo, un sitio web de viajes puede incluir un artículo en Destinos »Europa, donde Europa es la categoría secundaria.
De forma predeterminada, un tema de WordPress mostraría todas las categorías principales y secundarias para una publicación.
Sin embargo, es posible que enumerar todas las categorías de una publicación no se vea tan ordenado y enfocado como mostrar la categoría más relevante. En ese caso, es posible que desee omitir la categoría principal y mostrar solo la categoría secundaria.
Dicho esto, echemos un vistazo a cómo mostrar solo la categoría secundaria para una publicación de WordPress.
Mostrar solo la categoría secundaria para una publicación de WordPress
Este tutorial requiere un conocimiento básico de copiar y pegar fragmentos de código personalizados en WordPress.
Primero, necesitará encontrar el código en sus archivos de tema responsable de mostrar las categorías. Por lo general, se encuentra en el archivo single.php dentro de su tema.
Para obtener más información, consulte nuestra hoja de referencia de la jerarquía de plantillas de WordPress que lo ayuda a descubrir qué archivos de plantilla se utilizan para mostrar diferentes secciones en un tema de WordPress.
Una vez que haya localizado el código responsable de mostrar las categorías, puede reemplazarlo con el siguiente código.
// Get the IDs of child categories if any $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; } } // If there are no child categories then display categories If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); // display child categories only } else { $child_cat_IDs = implode(', ', $child_cat_ID); echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $child_cat_IDs ) ); echo '</div>'; }
No olvide guardar sus cambios y cargar los archivos del tema nuevamente en su servidor.
Ahora puede visitar su publicación única que tiene una o más categorías secundarias. Notará que ocultará la categoría principal y solo mostrará las categorías secundarias.
Hay un problema con este código.
Si ha seleccionado una categoría principal con categorías secundarias y otra categoría única, el código omitirá la categoría independiente. Eso significa que en el ejemplo siguiente, la categoría «Noticias» no se mostrará.
Si esto es un problema para sus necesidades de diseño, puede usar el siguiente código en su lugar.
// Get the IDs of categories $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; //store child's parent category id to use later $parent_cat_ID = $category->parent; } // find categories with no parent and no child If ( $category->parent == 0 && $category->term_id !== $parent_cat_ID) { $single_category[] = $category->term_id; } } // Display part of the code // if there are no child categories then go ahead and display all categories. If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); } // If there are child categories then do this else { $child_cat_IDs = implode(', ', $child_cat_ID) ; $single_category_id = implode(', ', $single_category); // Combine child categories and categories with no children $cats_to_include = $child_cat_IDs . ', ' . $single_category_id ; // Display them echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $cats_to_include ) ); echo '</div>'; }
Este código ahora solo excluirá las categorías principales. Seguirá mostrando las categorías independientes junto con las categorías secundarias.
Esperamos que este artículo le haya ayudado a aprender a mostrar la categoría de hijo único en sus publicaciones de WordPress. También puede probar estos trucos útiles para el archivo de funciones de WordPress o considerar el uso de estos poderosos creadores de páginas de WordPress para evitar escribir ningún código.