• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Must Comunicación

Diseño Web y Marketing Online

  • Temas WordPress
  • Plugins WordPress
  • WooCommerce
  • Marketing
  • Tutoriales
    • WooCommerce
    • Easy Digital Downloads
  • Contacto
Usted está aquí: Inicio / WordPress / Desarrollo Web / Archivos de taxonomía: Listar las entradas según los términos de taxonomía

Archivos de taxonomía: Listar las entradas según los términos de taxonomía

Desarrollo Web WordPress Deja un comentario

Compartir
Compartir
Twittear
Pocket
WhatsApp
Email
Final product image
Lo que vamos a crear

Por defecto, WordPress crea archivos que listan todas tus entradas en orden inverso. Si los usuarios están buscando entradas pertenecientes a una cierta categoría o con un término de taxonomía concreto, tendrán que visitar la página de archivo de dicha categoría o término.

Pero, ¿y si deseases hacer la página de archivo principal de un tipo de entrada personalizada más útil y fácil de usar para el usuario? En este tutorial te mostraré cómo crear una página de archivo para un tipo de entrada personalizada que muestre únicamente las entradas de ese tipo y categorizadas según una taxonomía, de manera que en lugar de listar un largo listado, los usuarios verán una lista para cada término de taxonomía.

Lo que vas a necesitar

Para seguir este tutorial necesitarás una instalación de WordPress para el desarrollo y un editor de código. Crearás un tema hijo para el tema twentyfourteen, así tendrás que tener instalado éste último (debería estarlo por defecto).

Te voy a enseñar como crear un tema hijo, pero si te bloqueas, echa un vistazo a la hoja de estilo que viene con el paquete de ejemplos de código para este tutorial.

1. Comienzo: Registrar el tipo de entrada y la taxonomía

Según mi experiencia, esta técnica se necesita con mayor frecuencia para crear tipos de entradas personalizadas y taxonomías que para entradas, categorías o etiquetas estándar, así que empezaré registrando un tipo de entrada y una taxonomía.

Nota: Yo estoy usando el mismo tipo de entrada ‘animal’ que registré en un tutorial anterior sobre cómo crear un archivo basado en imágenes. Si quieres llevar las cosas un poco más allá, podrías combinar la técnica de ese tutorial con la que te estoy mostrando aquí y mostrar la lista de tu término de taxonomía acompañado de imágenes.

En el archivo functions.php de tu tema, añade el siguiente código para registrar el tipo de entrada:

Registrar un tipo de entrada personalizada
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// register a custom post type called 'animals'
function wptp_create_post_type() {
    $labels = array(     
    'name' => __( 'Animals' ),
        'singular_name' => __( 'animal' ),
        'add_new' => __( 'New animal' ),
        'add_new_item' => __( 'Add New animal' ),
        'edit_item' => __( 'Edit animal' ),
        'new_item' => __( 'New animal' ),
        'view_item' => __( 'View animal' ),
        'search_items' => __( 'Search animals' ),
        'not_found' =>  __( 'No animals Found' ),
        'not_found_in_trash' => __( 'No animals found in Trash' ),
    );
    $args = array(
        'labels' => $labels,
        'has_archive' => true,
        'public' => true,
        'hierarchical' => false,
        'supports' => array(
            'title',
           'editor',
           'excerpt',
           'custom-fields',
           'thumbnail',
            'page-attributes'
        ),
        'taxonomies' => array( 'post_tag', 'category'),
    );
    register_post_type( 'animal', $args );
}
add_action( 'init', 'wptp_create_post_type' );


Después, añade el código que registra la taxonomía:

Registrar una taxonomía
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// register a taxonomy called 'Animal Family'
function wptp_register_taxonomy() {
    register_taxonomy( 'animal_cat', 'animal',
        array(
            'labels' => array(
                'name'              => 'Animal Families',
                'singular_name'     => 'Animal Family',
                'search_items'      => 'Search Animal Families',
                'all_items'         => 'All Animal Families',
                'edit_item'         => 'Edit Animal Families',
                'update_item'       => 'Update Animal Family',
                'add_new_item'      => 'Add New Animal Family',
                'new_item_name'     => 'New Animal Family Name',
                'menu_name'         => 'Animal Family',
            ),
            'hierarchical' => true,
            'sort' => true,
            'args' => array( 'orderby' => 'term_order' ),
            'rewrite' => array( 'slug' => 'animal-family' ),
            'show_admin_column' => true
        )
    );
}
add_action( 'init', 'wptp_register_taxonomy' );


Una vez hayas hecho esto, añade algo de información. Aquí abajo puedes ver la información que yo he añadido junto con algunos términos de taxonomía aplicados. No pretendo ser muy exacto en mis terminología en lo que respecta a las familias de los animales de manera que, por favor, ¡no hagas ningún comentario si he cometido algún fallo!

2. Configurar la plantilla para los archivos

El siguiente paso consiste en crear una plantilla para el nuevo tipo de entrada. En tu tema, crea un nuevo archivo llamado archive-animal.php.

Como este es un tema hijo de twentyfourteen, la plantilla del archivo necesitará el código copiado de dicho tema para contener el loop personalizado que vas a crear. Así que añade lo siguiente a la plantilla de tu archivo:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php/
*Tutorial para crear una página de archivo que muestre las entradas según taxonomia
Plantilla de archivo para el custom post type animal */
?>
 
<?php get_header(); ?>
    <div id="main-content" class="main-content">
 
    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">
 
            <header class="archive-header">
                <h1 class="archive-title">
                    <?php post_type_archive_title(); ?>
                </h1>
            </header><!-- .archive-header -->
 
        </div><!-- #content -->
    </div><!-- #primary -->
    <?php get_sidebar( 'content' ); ?>
</div><!-- #main-content -->
 
<?php
get_sidebar();
get_footer();


Nota: Si estás trabajando con tu propio tema, copia el código que contendrá el loop del archivo o el index (archive.php o index.php) de tu propio tema.

3. Organizar la plantilla de los archivos: Extraer los dérminos de taxonomía

Para que tu archivo pueda mostrar los animales según términos de la taxonomía, el siguiente paso consiste en extraer esos términos.

En tu nuevo archivo de plantilla, debajo de la etiqueta de cierre </header> (o bajo la parte que abre el código que envuelve el loop si estás usando tu propio tema), extrae los términos usando get_terms():

PHP
1
2
3
4
5
6
<?php //empieza a extraer los términos para la taxonomia animal_cat
$terms = get_terms( 'animal_cat', array(
    'orderby'    => 'count',
    'hide_empty' => 0
) );
?>

Observa que he usado aquí dos parámetros:

  • orderby – esto te permite especificar el orden de los términos mostrados. Yo he usado count como valor de manera que el término con mayor cantidad de entradas se mostrará en primer lugar, pero podrías ordenarlos por nombre o por ID – si lo dejas vacío, WordPress los ordenará por nombre. Consulta la página del Codex en get_terms() para conocer más detalles.
  • hide_empty – le indica a WordPress que no extraiga ningún término que no tenga ninguna entrada asignada. Te ahorra el tener que comprobar más adelante si tu consulta tiene entradas.

 

 

Lo que te queda por leer:

  • 4. Rellenar la plantilla de archivo: Definir la consulta

  • 5. Rellenar la plantilla de archivo: Añadir el Loop

    • El Loop completo

  • Resumen

seguir leyendo en Tuts+

Entradas relacionadas

Compartir
Compartir
Twittear
Pocket
WhatsApp
Email

categorías: Desarrollo Web, WordPress

anterior
siguiente

Acerca de Eva Collados Pascual

Apasionada de la sociedad de la información, el marketing online, la tecnología, el diseño y el arte.
Sigo a diario todas las noticias relacionadas con WordPress, si no encuentras en el blog la solución que buscabas, no dudes en consultarme.

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la Política de privacidad

Barra lateral principal

Categorías

  • Apps – Productividad
  • Artículos Tuts+
  • Diseño Web
  • eCommerce
  • Email Marketing
  • Emprendimiento
  • Marketing
  • SEO
  • Temas Shopify
  • Temas WordPress
  • Tutoriales
    • Tutorial de Easy Digital Downloads
    • Tutorial de WooCommerce
    • Tutorial W3 Total Cache
  • WooCommerce
  • WordPress
    • Desarrollo Web
    • Optimización
    • Plugins
    • Seguridad
    • Temas WordPress

Etiquetas

caché Conversión CRO Inspiración Web Landing Pages newsletters Performance Optimization PHP Plugins WooCommerce Plugins WordPress Seguridad SEO Startups Temas WooCommerce Temas WordPress Tutoriales Tuts+ Vídeo WooCommerce WordPress WPO

Copyright Must Comunicación© 2025 Genesis Framework

Este sitio web usa cookies propias y de terceros para recordar tus datos de inicio de sesión y recopilar estadísticas para mejorar la experiencia del usuario. Más información sobre las cookies Leer más. Aceptar x
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR