¿Cómo crear taxonomías en WordPress?

Cuando hablamos de taxonomías todo las personas recuerdan fácilmente las que WordPress instala por defecto para sus entradas: categorías y etiquetas. Pero también tenemos la posibilidad de crear nuestras propias taxonomías mediante código o plugins para relacionarlas con los Custom Post Types de nuestros proyectos.

¿Que significa el término taxonomía?

Os voy a contar un secreto. Yo creía que las taxonomías eran algo propio de la informática. De hecho escuché de ellas por primera vez a través de WordPress, pero en realidad es un término asociado a la biología para clasificar los reinos animales, vegetales y minerales . Este término nació con el biólogo sueco Carl Linnaeus, a quienes llaman «El padre de la taxonomía moderna».

La taxonomía es la clasificación u ordenación en grupos de cosas que tienen características comunes. En WordPress utilizamos las taxonomías para agrupar y ordenar Post o Custom Post Types.

Por ejemplo: Si tenemos un Custom Post Type «Libros» podríamos tener una taxonomía asociada con los siguiente valores: drama, novela, ficción, terror, etc. De esta manera podemos agrupar u ordenar distintos libros bajo una misma taxonomía «Género».

Sobre este tema di mi primera charla en la WordCamp Bilbao 2016:

Ahora que ya tenemos una primera noción sobre las taxonomías vamos a ver cómo podemos crearlas. Describiré un primer ejemplo utilizando el plugin Custom Post Type UI para aquellas personas que no quieran meterse en líos de código de programación. Y en segundo lugar crearemos la taxonomía según los lineamientos del Codex de WordPress.


Video Tutorial


Crear taxonomías con un plugin

Para crear una taxonomía utilizaremos el plugin Custom Post Type UI el cual debemos tener instalado y activado en nuestro WordPress. Luego haremos click en el menú CPT UI » Add/Edit Taxonomies.

custom post type ui crear taxonomia
Formulario para crear una taxonomía usando el plugin «Custom Post Type UI».

Vamos a ver en detalle cada campo de este formulario:

CampoFunción
Taxonomy Slug
(obligatorio)
 El nombre clave que le vamos a dar a la taxonomía. Solo se aceptan caracteres alfanuméricos latinos en minúsculas, los espacios tienen que ser reemplazados por guiones o guiones bajos.
Plural Label
(obligatorio)
Nombre en plural que se utilizará en el menú de WordPress.
Singular Label
(obligatorio)
Nombre en singular que se utilizará en distintos links y páginas del administrador de WordPress.
Attach to Post Type
(obligatorio)
Este campo nos permite asociar la taxonomía a un tipo de Post. En el imagen vemos un Custom Post Type «Coches» que hemos creado en el artículo «Crea tus Custom Post Types sin programar«.
Al menos debemos indicar un tipo de post.

Al igual que en la creación de Custom Post Types podemos detallar las traducciones de las etiquetas que se mostrarán en el administrador de WordPress completando el segundo bloque de campos llamado «Additional Labels»:

custom post type ui traducciones taxonomia
Formulario para la traducción de etiquetas del plugin «Custom Post Type UI».

Veamos la descripción de algunos de los campos:

CampoFunción
Menu NameNombre para el menú del administrador de WordPress.
All ItemsTexto para el enlace de «todos los ítems» presente en el submenú de la taxonomía.
Add NewTexto para agregar una nueva taxonomía.
Add New ItemTexto utilizado en la esquina superior izquierda en el formulario de alta de la taxonomía.
Edit ItemTexto utilizado en la esquina superior izquierda en el formulario de edición de la taxonomía.
Search ItemTexto utilizado en el botón de búsqueda en la página de listado de taxonomías.

Una vez que aceptamos estos cambios podemos ver que al dar de alta o editar un Post (al que hemos asociado la taxonomía) aparecerá un nuevo menú para registrar las taxonomías.

formulario alta taxonomia no jerarquica
Formulario de taxonomías no jerárquicas.
custom post type ui taxonomias configuraciones

El formulario como pueden ver es idéntico al utilizado para las «etiquetas» en las entradas. Esto se debe a que hemos creado una taxonomía «no jerárquica«. Si necesitamos que la taxonomía se comporte como las «categorías» de las entradas debemos modificar la opción «Hierarchical» a true en la tercer sección de campos llamada «Settings«.


Creando taxonomías por programación

Para crear una taxonomía por programación deberás agregar el siguiente código en tu fichero functions.php de tu tema o bien en el fichero principal del plugin.

<php
// Función para crear una taxonomía
function crear_taxonomia_jerarquica() {

    // Definimos un array para las traducciones de la taxonomía
    $etiquetas = array(
        'name' => __( 'Géneros' ),
        'singular_name' => __( 'Género' ),
        'search_items' =>  __( 'Buscar géneros' ),
        'all_items' => __( 'Todos los géneros' ),
        'parent_item' => __( 'Género padre' ),
        'parent_item_colon' => __( 'Género padre:' ),
        'edit_item' => __( 'Editar género' ), 
        'update_item' => __( 'Actualizar género' ),
        'add_new_item' => __( 'Agregar un nuevo género' ),
        'menu_name' => __( 'Géneros' ),
    ); 	


    // Función WordPress para registrar la taxonomía
    register_taxonomy(
        'generos',
        array('post'), // Tipos de Post a los que asociaremos la taxonomía
        array(
            'hierarchical' => true, // True para taxonomías del tipo "Categoría" y false para el tipo "Etiquetas"
            'labels' => $etiquetas, // La variable con las traducciones de las etiquetas
            'show_ui' => true,
            'show_admin_column' => true,
            'query_var' => true,
            'rewrite' => array( 'slug' => 'genero' ),
        )
    );

}
add_action( 'init', 'crear_taxonomia_jerarquica', 0 );

Podemos encontrar más detalles sobre la configuración de los parámetros de la función register_taxonomy() en el Codex de WordPress.


Mostrar los términos de taxonomías de un Post

Una vez que hayamos asignado algunos términos a un post podremos mostrarlos en el Frontend utilizando el siguiente código dentro del loop y en algunas de las distintas plantillas que conforman nuestro tema (index.php, single.php, archive.php, etc).

<php
/*
    Parámetros:
    $id => ID del post. 
    $taxonomy => nombre de la taxonomía que queremos mostrar.
    $before (opcional) => Texto para mostrar antes de los términos.
    $separator (opcional) => Texto que utilizaremos para separar los términos
    $after (opcional) => Texto para mostrar después de los términos.
*/
the_terms($post->ID, 'generos', '',',');

Conclusión

Hay pilares importantes para dominar la estructura de información de cualquier WordPress y las taxonomías es una de ellas (junto con los Custom Post Types y los campos personalizados). Analiza en detalle tu proyecto web y crea las taxonomías jerárquicas o no jerárquicas que creas convenientes para sacar el mayor provecho al CMS.


¿Qué te pareció el artículo?
No molaPobreMolaMuy bueno¡Excelente! (8 votos, promedio: 5,00 de 5)
Cargando…
Mauricio Gelves
Mauricio Gelves es Lic. en Informática y trabaja como Consultor Web Freelance con su marca personal MauGelves. Se especializó en WordPress para ofrecer soluciones personalizadas y rentables a medianas y largas empresas. Es Nómade Digital desde el año 2015, actividad que combina sus dos principales pasiones: la informática y los viajes, y refleja sus experiencias a través de sus hobbies audiovisuales en Instagram y YouTube.
10 Pasos para ser Freelance - eBook Gratuito

10 pasos para convertirte en Freelance

Descarga en forma totalmente gratuita mi eBook en donde explico los 10 pasos que he dado para convertirme en Freelance.

Ingresa tu email y recibe en tu bandeja de correo el enlace para descargarte el eBook.

(Te doy mi palabra que solo enviaré un email al mes con todas mis novedades)


17 thoughts on “¿Cómo crear taxonomías en WordPress?”

  1. Hola Mau
    Como estas?, espero bien. Me llamo Alvaro soy de Luján, Buenos Aires.
    Eh instalado el programa para agregar las taxonomías y las mismas aparecen listadas con el pluguin Search&Filter pero cuando pongo buscar no me arroja los resultados de los items a los cuales les eh asignado las taxonomías, no entiendo mucho, me arroja todo lo que esta por ejemplo contenido en el primer item que es País.
    [searchandfilter fields=»travel_locations,post_ciudad,post_hotel» order_dir=»,asc,desc» order_by=»,id,name» headings=»País,Destino,Hotel»]

    Por que puede estar sucediendo esto? me eh vuelto loco y eh invertido muchas horas. Aguardo. Muchas gracias dios te bendiga hermano.

    1. Hola Álvaro, lo siento pero en mi artículo solamente estoy hablando sobre cómo crear las taxonomías.
      Tu duda está referida propiamente al plugin «Search & Filter» (que desconozco su funcionamiento), te recomiendo que te pongas en contacto con los creadores de dicho plugin o bien buscar algún foro de soporte.
      Un saludo,
      Mauricio

  2. Buenas, muchas gracias por tu explicación.
    Tengo un problema con las categorías y es que me dice esto: «Taxonomías nativas
    Añade compatibilidad con las taxonomías registradas disponibles.». Pero no me deja crear mis propias categorias o etiquetas.

    1. Hola Francisco, la verdad es que no sé por qué está recibiendo ese mensaje. He googleado la frase completa sin encontrar resultados.
      De todas formas, si está utilizando algún plugin específico, le recomendaría utilizar los foros de WordPress donde más personas podrían detectar y ayudarle con el problema => https://es.wordpress.org/support/
      Un saludo,
      Mauricio

  3. Hola..muy bien explicado y si quiero agregar dos categorías como hago..? porque si copio y pego cambiando valores me dice que no se puede crear otra vez ‘crear_taxonomia_jerarquica’

  4. Hola! Gracias por el tutorial. Perfectamente explicado.

    He creado una taxonomía asociada (autor) a productos de woocommerce a través del plugin que mencionas y todo parece funcionar perfectamente. Incluso he comprobado que el buscador trabaja correctamente con esa taxonomía. El problema es que no entiendo qué código hay que incluir en la página de producto del frontend para que muestre el valor de la taxonomía. Simplemente se trataría de mostrar el valor de «autor» en la ficha del producto ¿Podrías echarme una mano?

  5. Hola! Como puedo añadir otra taxonomía del tipo categoría? Es decir, siguiendo tu ejemplo, además de «Marcas» quiero añadir otra que sea «Color» y que tenga el estilo jerárquico.

    Prefiero hacerlo con código

    Un saludo!

    1. Hola Patricia: en este mismo artículo te explico cómo hacerlo.
      Busca el título «CREANDO TAXONOMÍAS POR PROGRAMACIÓN» y ahí tienes un ejemplo del código a utilizar.
      Un saludo!

  6. Gracias por tu artículo,
    Tengo una pregunta, he insertado en mi wordpress otra taxonomía, y funciona perfectamente, tengo dentro de la taxonomía 4 categorias y quiero que aparezca en el listado por categorias y en la ampliada el menu con las nuevas categorias no con el menu blog sidebar del blog del sitio, ¿como lo hago?

    un saludo

  7. Graciaspor tus tutoriales! muy bien explicados, una pregunta si tenemos 2 variables por ejemplo en un coche,
    4 cilindros y 6 cilindros, ¿Son Taxonomías o categorías?
    Saludos

    1. Hola Luis:
      Creo que tienes un problema de conceptos ya que una «categoría» es una taxonomía en si mismo.
      Con respecto a los posibles valores, puedes implementar una categoría «Cilindros» y cargar dos términos (o los que necesites) con 4 y 6 para poder asignar las entradas. De esa forma podrás filtrar los valores.
      También podría llegar a implementarse con campos personalizados. Eso ya depende de qué tipo de manejo de información necesites en tu web.
      Un saludo.

  8. Muchas gracias Mau!

    No conocia tu site ni tus videos, pero de una forma muy muy sencilla haces que los conceptos entren perfectamente a la primera.
    Ya tengo tu web en «mis favoritos».

    Un saludo.

Deja una respuesta

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

× ¿Puedo ayudarte?