Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Cómo mostrar solo la categoría secundaria en el bucle de entradas de WordPress

Nota editorial: Ganamos una comisión de los enlaces de socios en WPBeginner. Las comisiones no afectan a las opiniones o evaluaciones de nuestros editores. Más información sobre Proceso editorial.

¿Quieres mostrar solo la categoría hija en el bucle de entradas de tu WordPress?

La mayoría de los temas de WordPress muestran todas las categorías de una entrada, incluidas las categorías principales y secundarias. Sin embargo, si añades muchas categorías a tus entradas, tu sitio puede parecer desordenado e impedir que los lectores encuentren contenidos interesantes.

En este artículo, le mostraremos cómo mostrar fácilmente solo la categoría hija en su bucle de entradas de WordPress.

Showing only child categories inside WordPress post loop

¿Por qué mostrar solo la categoría secundaria en el bucle de entradas de WordPress?

Al crear un blog en WordPress, puede organizar su contenido mediante categorías y etiquetas.

Para ayudar a los lectores a encontrar contenidos interesantes más rápidamente, puede incluso crear categorías secundarias (o subcategorías).

Por ejemplo, si tiene un blog de viajes, puede crear una categoría “Destinos” y luego categorías secundarias como “Europa”, “América” y “Australia”.

Por defecto, la mayoría de los temas de WordPress muestran todas las categorías padre e hijo de una entrada.

Displaying the child categories only in the WordPress post loop

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

Por esa razón, puede que quiera ocultar las categorías genéricas de una entrada y mostrar solo las categorías secundarias. Dicho esto, veamos cómo mostrar solo las categorías secundarias en el bucle de entradas de WordPress.

Antes de editar un archivo de tema de WordPress: puntos clave que debe recordar

Esta guía está dirigida a personas que se sienten cómodas con el código y la edición de archivos de temas de WordPress. Aquí hay algunas cosas que debe hacer antes de seguir el tutorial:

  1. En primer lugar, tienes que conectar tu sitio web con FTP o abrir el gestor de archivos de tu alojamiento web para poder acceder a esos archivos.
  2. Si eres principiante, puedes consultar nuestra guía para principiantes sobre cómo pegar fragmentos de código de la web en WordPress para prepararte de antemano.
  3. Recomendamos crear una copia de seguridad o utilizar un sitio de ensayo para seguir este método. De este modo, si algo sale mal, su sitio activo no se verá afectado.

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

Mostrar solo la categoría hija en el bucle de entradas de WordPress

En primer lugar, tendrás que encontrar el código en los archivos de tu tema responsable de mostrar las categorías. Esto puede llevar algún tiempo, pero puede utilizar la característica de búsqueda de su editor de código para acelerar las cosas.

Intente encontrar código relacionado con la categoría, como has_category o get_the_category_list. Si los localizas, entonces deberías estar en el archivo correcto.

Si utiliza el tema Twenty Twenty-One, el archivo que debe buscar es el archivo template-tags dentro de la carpeta ‘inc’. Aquí está el fragmento de código responsable de mostrar las categorías:

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
        );
    }
    echo '</div>';
}

Si no puede encontrar el archivo de plantilla adecuado, consulte nuestra hoja de trucos sobre la jerarquía de plantillas de WordPress.

Ahora que has encontrado el código correcto, puedes añadir el siguiente fragmento de código:

// Get the IDs of categories
    $categories = get_the_category();
    $child_cat_ID = array(); // Array to store child category IDs

    foreach( $categories as $category ) {
        // Check if the category has a parent (i.e., it's a child category)
        if ( $category->parent > 0 ) {
            $child_cat_ID[] = $category->term_id; // Store the child category ID
        }
    }

    if ( !empty($child_cat_ID) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' );
        foreach($child_cat_ID 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; // Echo the entire output

Si utilizas el tema Twenty Twenty-One, entonces debes añadir el código anterior sustituyendo los que están entre estas líneas:

if ( has_category() || has_tag() ) {
    echo '<div class="post-taxonomies">';
// Replace the code in between these lines
}
    echo '</div>';
}

Este es el aspecto que debería tener:

Editing a theme file to display only child categories

Cuando haya terminado, guarde los cambios y vuelva a subir el archivo al servidor de alojamiento web.

Ahora, necesita visitar una entrada que tenga una o más categorías hijas. Verá que la categoría padre está oculta, y WordPress muestra ahora solo las categorías hijas.

Esperamos que este artículo te haya ayudado a aprender cómo mostrar solo la categoría secundaria en tus entradas de WordPress. A continuación, puede que desee ver nuestra guía sobre cómo hacer dinero en línea blogs con WordPress o nuestras selecciones de expertos para los mejores plugins de SEO y herramientas que debe utilizar.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

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

Reader Interactions

11 comentariosDeja una respuesta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Mike says

    Managed it!

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

  3. MIke says

    I have three main categories and this code is successfully working in my single page loop to echo the actual selected category name.
    I now want to echo the parent of the category. The complication is that I have two layers below the main category (3 levels) and I want to echo the one level parent not the top level parent. It seems easy to echo the top parent, but I haven’t seem any code to return the child level category of a grandchild category?

  4. Marian Rick says

    This is a great piece of code. Thanks a lot so far!

    For one of my projects I have to go further, and display only the lowest subcategory. So there may be three levels, (Forms -> Squares -> Big Squares). With this code all subs (Squares -> Big Squares) are displayed. How can I tell this code to repeat the process till only the last child is found and displayed?

    If you’ve got any solutions for that you are my heroes once again! Keep up your great work and blog!

    • Editorial Staff says

      If you are trying to display a list of all child categories, then use wp_list_categories() function. It has parameters that allow you to list only child categories or only parent categories. But that doesn’t work for the case that we are talking about in this article.

      Administrador

  5. Keith Davis says

    Great snippets of info from you guys.
    I really have to start to get into this PHP.

    Great site boys and I notice that you are up to Pagerank 6!
    How about a couple of posts on upping your pagerank.

Deja tu comentario

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