Crear una taxonomía personalizada en WordPress: guía completa

En WordPress, las taxonomías permiten clasificar contenido de manera flexible. Además de las predeterminadas como categorías y etiquetas, puedes crear tus propias taxonomías para organizar contenido de forma personalizada, como por ejemplo «Regiones», «Temas», «Ingredientes», etc.

En este artículo te mostraré cómo crear una taxonomía personalizada en código, cuáles son sus opciones principales, cómo vincularla a un Custom Post Type (CPT), cuál será la URL pública para ver sus términos y qué archivo del tema se encarga de mostrar esos contenidos.

 

¿Qué es una taxonomía personalizada?

Una taxonomía personalizada en WordPress es una forma de agrupar contenido mediante etiquetas o términos definidos por ti. Es útil para mejorar la navegación, el filtrado y la organización de tu sitio, especialmente cuando trabajas con Custom Post Types.

 

Crear una taxonomía con register_taxonomy()

La función register_taxonomy()permite registrar una nueva taxonomía en WordPress. Generalmente se llama dentro del hook init.

 

Ejemplo básico

<?php
function registerRegionTaxonomy() {
    $labels = [
        'name'              => 'Regiones',
        'singular_name'     => 'Región',
        'search_items'      => 'Buscar regiones',
        'all_items'         => 'Todas las regiones',
        'edit_item'         => 'Editar región',
        'update_item'       => 'Actualizar región',
        'add_new_item'      => 'Agregar nueva región',
        'new_item_name'     => 'Nombre de nueva región',
        'menu_name'         => 'Regiones'
    ];

    $args = [
        'labels'            => $labels,
        'public'            => true,
        'hierarchical'      => true, // true para comportamiento tipo categorías
        'show_ui'           => true,
        'show_in_rest'      => true, // importante si usás Gutenberg
        'show_admin_column' => true,
        'rewrite'           => [ 'slug' => 'region' ]
    ];

    register_taxonomy( 'region', [ 'post' ], $args );
}
add_action( 'init', 'registerRegionTaxonomy' );

Este ejemplo crea una taxonomía jerárquica llamada Región asociada al post type post.

 

Opciones disponibles en register_taxonomy()

A continuación un repaso de las opciones más útiles:

Opción Descripción
labels Etiquetas visibles en el panel de administración.
public Define si la taxonomía está disponible en el frontend.
hierarchical true para funcionar como categorías, false como etiquetas.
show_ui Muestra la interfaz en el admin.
show_in_rest Habilita soporte para Gutenberg y REST API.
show_admin_column Agrega una columna en la lista del post type.
rewrite Define el slug para URLs amigables.
query_var Habilita la consulta por variable en URLs (?region=sur).
meta_box_cb Define un callback personalizado para la UI del metabox.

 

¿Qué URL muestra los posts de una taxonomía?

Cuando usas la opción rewrite, WordPress genera una URL accesible para cada término de la taxonomía. Por ejemplo, si registrás una taxonomía regioncon el slug region, y tienes un término llamado sur, la URL será:

https://tusitio.com/region/sur/

Al ingresar a esa URL, WordPress mostrará todos los posts asociados con ese término (sur).

 

¿Qué archivo del theme se usa para mostrar la taxonomía?

Cuando se accede a una URL comohttps://tusitio.com/region/sur/, WordPress usa su jerarquía de plantillas para decidir qué archivo del theme debe cargar.

Para una taxonomía llamada region, estos son los archivos que busca en orden:

taxonomy-region.php
taxonomy.php
archive.php
index.php

 

Entonces, si quieres personalizar el diseño de la taxonomía region, puedes crear un archivo taxonomy-region.php

dentro de tu tema.

Ejemplo de estructura de archivos:

/wp-content/themes/tu-tema/
│
├── archive.php
├── index.php
├── page.php
├── single.php
├── taxonomy.php
└── taxonomy-region.php ← este es el que usamos para "Región"

 

Mostrar la taxonomía en el frontend

Para mostrar los términos de una taxonomía personalizada en una entrada o CPT:

<?php
$terms = get_the_term_list( get_the_ID(), 'region', 'Región: ', ', ' );
if ( $terms ) {
    echo '<p>' . $terms . '</p>';
}

 

Crear taxonomías personalizadas te da un control total sobre cómo organizar el contenido en WordPress. Además de mejorar la navegación, permite generar URLs limpias y páginas de archivo automáticas, que puedes personalizar fácilmente desde tu tema usando plantillas como taxonomy-region.php.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x