Taxonomías en WordPress

El uso de Categorías y de Etiquetas (Tags en Inglés) es muy habitual en WordPress. A la hora de crear una nueva entrada podemos asignarle una categoría (normalmente una categoría por entrada) y uno o varias etiquetas (normalmente varias etiquetas por entrada). Esto nos permite clasificar la información que estamos publicando para que luego sea más sencillo acceder a ella en función de las necesidades del usuario.

Tanto las Categorías como las Etiquetas son Taxonomías. ¿Qué es una Taxonomía? Veamos lo que dice el diccionario:

taxonomía. Ciencia que trata de los principios, métodos y fines de la clasificación. Se aplica en particular, dentro de la biología, para la ordenación jerarquizada y sistemática, con sus nombres, de los grupos de animales y de vegetales. 2. Por ext., clasificación.

Por defecto, WordPress incluye tres taxonomías: categoría, etiquetas y categoría de los enlaces. En este artículo veremos cómo enriquecer las taxonomías de nuestro tema de WordPress creando nuestras propias Taxonomías.

Desde WordPress 2.8 es mucho más sencillo crear Taxonomías propias (Custom Taxonomies en Inglés) que nos pueden dar más flexibilidad que las tradicionales Categorías y Etiquetas. Esto puede sernos de utilizad para entradas que requieren un número alto de criterios de clasificación, de tal forma que las Categorías y las Etiquetas se nos queden cortas.

Por ejemplo, imaginémonos que tenemos una web de música y queremos introducir canciones y clasificarlas por Artista, Album, Género, Epoca, Autor, Duración, etc… Necesitamos la ayuda de las Taxonomías creadas por el usuario. Veremos que funcionan de manera muy parecida a las etiquetas.

Sigamos con el ejemplo de la web de música. Supongamos que tenemos esta canción:
Shine on your Crazy Diamond
Artista: Pink Floyd
Album: Wish you were here
Género: Rock Progresivo
Autor: Pink Floyd
Duración: 13:32 minutos
Fecha: 1975

La idea es poder fijar toda esta información a una entrada que realices sobre esta canción de forma parecida a como lo harías con las etiquetas. Para empezar tienes que registrar las taxonomías para luego poder utilizarlas. Esto lo haces en el archivo functions.php de tu tema de WordPress. Escribríamos:

Vamos a ver en detalle qué hemos hecho. Tomemos la primera taxonomía, artista:

artista le dice a WordPress cuál es el nombre de la Taxonomía.

post indica el tipo de objeto sobre el que se aplica la Taxonomía, en este caso entradas (post). Más abajo veremos cómo crear taxonomías en páginas.

hierarchical indica si los términos de la taxonomía van a estar jerarquizados (las categorías lo estan, las etiquetas no). Lo ponemos como false (falso) para que se comporten como las etiquetas.

Artista es el nombre de la taxonomía tal y como queremos que aparezca en el panel de administración de WordPress.

query_var permite saber a WordPress si vas a querer poder seleccionar artículos utilizando la taxonomía. Más adelante veremos cómo. Ponemos TRUE (es decir, que sí vamos a querer poder hacerlo).

rewrite es para si quieres que WordPress ofrezca urls amigables cuando se vea una página o archivo de una taxonomía (por ejemplo www.tusitio.es/autor/pink-floyd). Como sí queremos, ponemos TRUE (cierto).

Bien, ya hemos registrado nuestras taxonomías propias en el archivo functions.php de nuestro tema. Ahora si entramos en el administrador de WordPress y abrimos o creamos una nueva entrada veremos que la columna lateral derecha (donde están las categorías y las etiquetas) ha cambiado. Ahora veremos (tengo una instalación de WordPress en inglés, pero si lo tenéis en Castellano os saldrá bien):



Veremos que en cada casilla de cada nueva taxonomía podemos añadir una nueva etiqueta. Si, el funcionamiento ahora es como el de las etiquetas normales, lo que pasa es que ahora tenemos varios grupos personalizados de etiquetas.

También saldrás las taxonomías nuevas en el menú de la izquierda, al desplegar Entradas.

Una vez publicada la entrada podemos acceder directamente, por ejemplo, a
http://www.tusitio.es/autor/pink-floyd/

Estas nuevas URLs utilizarán archive.php de tu tema de WordPress para mostrar todas las entradas que correspondan a esa taxonomía.

Si queremos mostrar una nube de etiquetas de una taxonomía en concreto (por ejemplo todos los Autores) lo haríamos con este código en cualquier sítio de cualquier archivo de nuestro tema:

En vez de autor pondríamos el nombre de la taxonomía que queramos, y en número (number) el número de etiquetas a mostrar de esa taxonomía (si ponemos 0, como en este caso, salen todas).

Si queremos que salgan todas las taxonomías y su nube de etiquetas podemos seguir las indicaciones de justintadlock.com:

Para mostrar todas las entradas que tengan una etiqueta concreta de una de nuestras taxonomías (por ejemplo, las 15 primeras entradas entradas con autor Pink Floyd) tendríamos que situar este código antes del loop de uno de los archivos de nuestro tema:

Si queremos que se muestre para cada artículo una taxonomía concreta y los enlaces de las etiquetas relacionadas (por ejemplo, Autor: Pink Floyd donde Pink Floyd es un enlace) utilizaríamos este código en el sitio donde queremos que salgan los enlaces de las etiquetas separadas con comas dentro del loop:

Los tres últimos parámetros le indican a WordPress qué escribir antes de los enlaces de las etiquetas, entre cada enlace y tras cada enlace.

Condicionales que podemos usar con las taxonomías:
is_tax(), is_tax(‘nombre-de-la-taxonomia’), is_tax(array(‘nombre1′,’nombre2′,’nombre3’))

Como veis el uso de las taxonomías es muy sencillo y nos puede permitir mejorar el uso de WordPress para crear webs de mayor complejidad. Gracias a la posibilidad de crear nuevas plantillas y sabiendo que podemos acceder a una taxonomía en concreto a través de una url amigable podemos crear menús y submenús con facilidad en los que accedamos a páginas concretas para cada taxonomía, por ejemplo.

Taxonomías en páginas

En el ejemplo anterior creábamos taxonomías para su uso en entradas (posts). Ahora veremos cómo crearlas en las páginas.
Fuente: http://justintadlock.com/archives/2009/11/09/excerpts-and-taxonomies-for-pages-in-wordpress-2-9
Hay que recordar que en WordPress 2.9 las Taxonomías no admiten jerarquización, como las categorías.
Supongamos que creamos una Taxonomía para páginas llamada “people”:

23 comentarios en “Taxonomías en WordPress

  1. Hola y enhorabuena por el gran tutorial.

    He estado buscando alguna forma de modificar los titles de cada taxonomy pero no he encontrando ningún plugin ni nada. Headspace2 tiene una opción para que todas las taxonomies tengan el title según un patrón (como en AIOSEOP y otros) pero no uno a uno.

    ¿Sabéis por aquí cómo hacerlo?

    Gracias y un saludo!
    Antonio

  2. Hola Juan magnifico post esta en todo pero una cosa que no logre entender :S jeje es ok con la taxonomia en la paginas se puede colocar mas entradas en las paginas??? asi como con los post eso he estado intentando buscar como hacer eso para que mis url sean mejor verda y ps me dijeron que con taxonomia se puede hacer esto y ps lo intente jojo y no me salio asi y ps probe ambas cosas y lo de los post si me salio bien bien y la de las paginas me salio y todo pero nose si se puede hacer por que segun yo eso asi bueno me gustaria k me respondieras porfa muchas graciasn desde siempre y muy buenos articulos en español estan en todos sigue asi para los que nos apasiona wordpres 😀

    1. Hola Jorge,

      Las taxonomías son símplemente más criterios de clasificación de entradas, en este caso mucho más personalizadas y detalladas que las categorías y las etiquetas. De todas formas WordPress 3 va a suponer un gran paso adelante con las taxonomías. Estoy preparando un artículo en ese sentido. A ver si tengo tiempo, porque llevo ya varias semanas sin subir ningún artículo. He tenido una niña y no me deja tiempo para nada!

    1. Hola Jorge,

      Desde el administrador en opciones/lectura en el caso de mi web le señalo que la página de inicio es estática y es una que se llama inicio, y le digo que las entradas están en una página que se llama Blog. Hay que tener los enlacen permanentes activados, también en opciones.

  3. hooooo!!! ye entendi 😀 es que yo baje un tema de theme forest y vi que tenia esa opcion verda de que podes poner mas post en las paginas de wordpress y pense que con la taxonima se puede hacer pero bueno muchas gracias y suerte con tu niña y ps que lastima que no tienes tiempo para escribir mas post que esta buenisimos… saludos adios 😀

  4. Hola Juan, muy bueno este post, esta muy bien explicado. Lo he encontrado buscando solución a un problema que tengo. Aunque no tiene que ver con este post te pregunto por si me puedes ayudar. Estoy haciendo una web para una empresa y tengo problemas para ordenar los productos, cada producto es un post, pero ¿como los puedo ordenar de manera personalizada, que no sea por la fecha de publicación?. Cuando un producto debe aparecer en mas de una categoría puedo manipular las fechas para ordenarlos pero sale bien colocado por fecha en la primera categoría pero no sale bien en el resto.
    He visto comentarios sobre algún plugin pero dicen que son bastante complicados de configurar y no terminan de funcionar bien.

    Saludos y gracias de antemano por si me puedes responder.

  5. Lo mejor que tiene este tutorial es que parte de cero absoluto.
    Es algo asi como ‘Taxonomies for dummies’. Todos los días aparecen nuevos términos que engloban una definición y a veces damos por sentado que dichas palabras significan un concepto más amplio. Luego comienzan a usarse a mansalva y quienes entran en cualquier discusión tienen una gran interrogante en la cabeza y a veces ir a la fuente deja más dudas que respuestas.

    Te felicito por tu didáctica.
    Saludos
    Fernando

  6. No me quedó ni una sola duda… al igual que Fernando te felicito por tu didáctica, me gustó hasta el ejemplo con mis canciones favoritas de Pink Floyd. Saludos y sigan asi

  7. Excelente artículo! Haces una disección clarísima del uso de las taxonomías. Gracias por compartir tu conocimiento sobre WordPress. Mis mejores deseos.

  8. Hola me gustaría como hacer lo siguiente, he creado en mi archivo functions un custom post type y sus respectivas taxonomias. Hasta aquí correcto, pero me gustaría saber como establecer ciertos valores en las taxonomias creadas, por ejemplo en la taxonomia provincias meter los valores automaticamente como alava,albacete,almeria etc…

    Alguien sabe como se hace?

    Desde yá muchas gracias.

  9. Hola he visto q todos crean taxonomias con campos input yo quiero q sea con select(lista de opciones), para escojer un opcion entre varias no se si me explico.

  10. Hola Juan,

    Quería hacerte una consulta ya que tengo un problema que no consigo resolver. En su día creé mi blog con páginas en vez de con posts puesto que mis relatos son muy largos, y quería mostrar los títulos al lector en un menú desplegable, no un artículo después de otro de modo que tuviera que recorrer toda la página para llegar al último. A día de hoy, quiero etiquetar mis contenidos para atraer más tráfico a mi blog y me encuentro con que no se puede hacer con las páginas. ¿Qué me recomiendas?

     

    Muchas gracias!

  11. Hola Juan. Antes que nada, disculpa por preguntar en un artículo de hace 5 años, pero eso es bueno: significa que en 5 años sigue siendo el mejor artículo que encontré sobre este tema. Y muy bien explicado, la verdad.

    A lo que iba. Desarrollo plantillas en WordPress y nunca había tenido que usar las taxonomías, exceptuando el post_format, que es una de más reciente. Ahora encuentro que el uso de taxonomías me puede servir para crear una base de datos con tipos de hosting. Eso me permitirá insertar información adicional en cada post (como el ancho, la capacidad, el precio, etc…), información que luego insertaré en una tabla dinámica que se podrá colocar en cualquier lugar usando un shortcode.

    Pero antes de hacer todo eso: ¿dónde se guarda la información? Cuando haga copias de seguridad, ¿se guardará también la información contenida en las nuevas taxonomías? (Todo eso lo haré en un plugin para poder usarlo en cualquier plantilla).

    Y luego otra dudilla: para la característia “precio” que contendrá valores del tipo “3,99”, si no quiero que se creen archivos del tipo ‘precio/3-99’ en el slug, ¿tengo que poner FALSE en query_var además de ponerlo en rewrite, verdad?

    Gracias de antemano y un saludo.

Deja un comentario

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