Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo mostrar solo la categoría hija en el bucle de publicaciones de tu WordPress

En nuestra experiencia, si agregas muchas categorías a tus publicaciones de WordPress, las cosas pueden empezar a verse un poco abarrotadas. Múltiples categorías, especialmente las categorías principales e hijas, pueden saturar tus diseños y dificultar que los lectores encuentren lo que buscan.

¿No sería más limpio mostrar solo la categoría hija para cada publicación?

Esta guía te mostrará cómo modificar el archivo de tu tema de WordPress para mostrar solo las categorías hijas en tu bucle de publicaciones, dándole a tu blog una sensación más optimizada y fácil de usar.

Mostrar solo categorías secundarias dentro del bucle de publicaciones de WordPress

¿Por qué mostrar solo la categoría hija en tu bucle de publicaciones de WordPress?

Al crear un blog de WordPress, puedes organizar tu contenido usando categorías y etiquetas.

Para ayudar a los lectores a encontrar contenido interesante más rápido, incluso podrías crear categorías hijas (o subcategorías).

Por ejemplo, si tienes un blog de viajes, podrías crear una categoría 'Destinos' y luego tener categorías hijas como 'Europa', 'América' y 'Australia'.

Por defecto, la mayoría de los temas de WordPress muestran todas las categorías principales e hijas de una publicación.

Mostrar solo las categorías secundarias en el bucle de publicaciones de WordPress

Sin embargo, si usas muchas categorías, entonces las páginas de tu blog pueden empezar a verse desordenadas y complicadas. También puede dificultar que los lectores encuentren la categoría que les interesa.

Por esa razón, es posible que desees ocultar las categorías principales genéricas de una publicación y mostrar solo las subcategorías. Dicho esto, veamos cómo puedes mostrar solo las subcategorías en el bucle de publicaciones de WordPress.

Antes de editar un archivo de tema de WordPress: Puntos clave a recordar

Esta guía está dirigida a personas que se sienten cómodas codificando y editando archivos de temas de WordPress. Aquí hay algunas cosas que debes hacer antes de seguir el tutorial:

  1. Primero, necesitas conectar tu sitio web con FTP o abrir el administrador de archivos de tu proveedor de hosting para poder acceder a esos archivos.
  2. Si eres principiante, puedes consultar nuestra guía para principiantes sobre cómo pegar fragmentos de la web en WordPress para prepararte de antemano.
  3. Recomendamos crear una copia de seguridad o usar un sitio de staging para seguir este método. De esta manera, si algo sale mal, tu sitio en vivo no se verá afectado.

Por último, esta guía solo es aplicable a temas clásicos de WordPress. Los temas de bloques tienen una estructura diferente para los archivos del tema.

Mostrar solo la categoría secundaria en el bucle de publicaciones de WordPress

En este tutorial, te mostraremos cómo editar el archivo de tu tema usando el administrador de archivos de Bluehost. Pero independientemente de tu proveedor de hosting, los pasos deberían ser similares.

Primero, inicia sesión en tu panel de Bluehost y navega a la pestaña 'Websites'. Luego, haz clic en 'Settings' en el sitio que deseas editar.

Configuración del sitio de Bluehost

A continuación, desplázate hacia abajo hasta la sección Quick Links.

Luego, haz clic en el botón 'File Manager'.

Acceder al administrador de archivos de un sitio web en Bluehost

Esto abrirá el administrador de archivos.

Ahora, necesitarás encontrar el código en el archivo de tu tema que es responsable de mostrar las categorías. Puedes empezar a hacer esto yendo a la carpeta public_html de tu sitio » wp-content » themes » la carpeta de tu tema actual.

En esta etapa, es posible que necesites abrir cada archivo y carpeta uno por uno para encontrar el archivo correcto para editar. Una cosa que puedes hacer es intentar encontrar código relacionado con categorías, como has_category o get_the_category_list. Si los localizas, entonces deberías estar en el archivo correcto.

Si no puedes encontrar el archivo de plantilla correcto, consulta nuestra hoja de referencia de la jerarquía de plantillas de WordPress y nuestra guía sobre cómo encontrar el archivo de tema correcto para editar.

Si usas el tema Twenty Twenty-One, el archivo que debes buscar es el archivo template-tags dentro de la carpeta 'inc'. Una vez que lo hayas encontrado, puedes hacer clic derecho sobre el archivo y seleccionar 'Editar'.

Abrir la carpeta inc para el tema Twenty Twenty One en el administrador de archivos de Bluehost

En el archivo, este es el fragmento responsable de mostrar las categorías y etiquetas:

if ( has_category() || has_tag() ) {

				echo '<div class="post-taxonomies">';

				$categories_list = get_the_category_list( wp_get_list_item_separator() );
				if ( $categories_list ) {
					printf(
						/* translators: %s: List of categories. */
						'<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
						$categories_list // phpcs:ignore WordPress.Security.EscapeOutput
					);
				}

				$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );
				if ( $tags_list && ! is_wp_error( $tags_list ) ) {
					printf(
						/* translators: %s: List of tags. */
						'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
						$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
					);
				}
				echo '</div>';
			}
		} else {

Ahora que has encontrado el código correcto, puedes reemplazar todo ese fragmento con esto:

if ( has_category() || has_tag() ) {

    echo '<div class="post-taxonomies">';

    // Get the list of categories
    $categories = get_the_category();
    $child_cat_IDs = array(); // Array to store child category IDs
    $parent_cat_IDs = array(); // Array to store parent category IDs
 
    foreach ( $categories as $category ) {
        if ( $category->parent > 0 ) {
            $child_cat_IDs[] = $category->term_id; // Store the child category ID
        } else {
            $parent_cat_IDs[] = $category->term_id; // Store the parent category ID
        }
    }

    // Output child categories if there are any
    if ( !empty($child_cat_IDs) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
        foreach ( $child_cat_IDs as $cat_id ) {
            $cat_link = get_category_link($cat_id);
            $cat_name = get_cat_name($cat_id);
            $output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
        }
        $output .= '</span>'; // Close the span tag after the loop
        echo $output; // Output the child category links

    // Output parent categories if there are no child categories
    } elseif ( !empty($parent_cat_IDs) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
        foreach ( $parent_cat_IDs as $cat_id ) {
            $cat_link = get_category_link($cat_id);
            $cat_name = get_cat_name($cat_id);
            $output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
        }
        $output .= '</span>'; // Close the span tag after the loop
        echo $output; // Output the parent category links
    }

    // Handle tags
    $tags_list = get_the_tag_list('', wp_get_list_item_separator());
    if ( $tags_list && ! is_wp_error( $tags_list ) ) {
        printf(
            /* translators: %s: List of tags. */
            '<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
            $tags_list // phpcs:ignore WordPress.Security.EscapeOutput
        );
    }

    echo '</div>'; // Close post-taxonomies div
}
} else {

Este fragmento de código primero identifica todas las categorías asignadas a la publicación. Luego, verifica si cada categoría tiene un padre.

Si lo tiene, eso significa que es una subcategoría y se agrega a la lista de visualización. Las categorías principales se omiten, lo que resulta en una visualización más limpia y específica de la categorización de tu publicación.

Así es como debería verse cuando reemplaces el código:

Realizar cambios en el código que muestra la lista de categorías en el bucle de publicaciones usando el administrador de archivos de Bluehost

Cuando termines, simplemente guarda tus cambios.

Ahora, necesitas visitar una publicación que tenga una o más categorías secundarias. Verás que la categoría principal está oculta y WordPress ahora solo muestra las categorías secundarias.

Resultado de editar el código para mostrar solo la categoría secundaria en el bucle de publicaciones

Esperamos que este artículo te haya ayudado a aprender cómo mostrar solo la categoría secundaria en tus publicaciones de WordPress. A continuación, es posible que desees ver nuestro artículo sobre cómo estilizar categorías individuales de manera diferente en WordPress y nuestra guía para principiantes sobre cómo buscar por categoría en WordPress.

Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

10 CommentsLeave a Reply

  1. ¡Lo logré!

    foreach((get_the_category()) as $childcat) { $parentcat = $childcat->category_parent; if (cat_is_ancestor_of(10, $childcat)) { echo get_cat_name($parentcat); } }

  2. Tengo tres categorías principales y este código está funcionando correctamente en mi bucle de página individual para mostrar el nombre de la categoría seleccionada. Ahora quiero mostrar el padre de la categoría. La complicación es que tengo dos niveles debajo de la categoría principal (3 niveles) y quiero mostrar el padre de un nivel, no el padre del nivel superior. Parece fácil mostrar el padre superior, pero no he visto ningún código para devolver la categoría de nivel secundario de una categoría nieta.

  3. Este es un gran fragmento de código. ¡Muchas gracias hasta ahora!

    Para uno de mis proyectos, tengo que ir más allá y mostrar solo la subcategoría más baja. Por lo tanto, puede haber tres niveles (Formas -> Cuadrados -> Cuadrados Grandes). Con este código, se muestran todos los subniveles (Cuadrados -> Cuadrados Grandes). ¿Cómo puedo decirle a este código que repita el proceso hasta que se encuentre y se muestre solo el último hijo?

    ¡Si tienen alguna solución para eso, son mis héroes una vez más! ¡Sigan con su gran trabajo y blog!

    • Si estás intentando mostrar una lista de todas las categorías secundarias, entonces usa la función wp_list_categories(). Tiene parámetros que te permiten listar solo categorías secundarias o solo categorías principales. Pero eso no funciona para el caso del que estamos hablando en este artículo.

      Administrador

  4. Grandes fragmentos de información de ustedes.
    Realmente tengo que empezar a meterme en esto del PHP.

    Gran sitio muchachos y noto que ya están en Pagerank 6.
    ¿Qué tal un par de posts sobre cómo subir tu pagerank?

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.