Crea taxonomías personalizadas para tus contenidos en WordPress

Crea taxonomías personalizadas para tus contenidos en WordPress

WordPress, por defecto, incorpora tres tipos de taxonomías (categorías, etiquetas y categorías de enlaces) las cuales están asociadas al tipo de contenido «entrada». Pero, ¿qué ocurre si quieres crear taxonomías personalizadas para tus contenidos en WordPress? Veámoslo.

Hace un tiempo, escribía un artículo sobre cómo podías crear un tipo de contenido personalizado, por ejemplo, para almacenar coches. Ahora, imagina que quieres ir un paso más allá, que además de almacenar los títulos y la descripción de dichos coches, también quieres poder guardar su tipo (deportivo, monovolumen,…). Pues muy sencillo: necesitarás crear una taxonomía personalizada para tu contenido.

Crea taxonomías personalizadas para tus contenidos en WordPress

Pero, ¿qué es una taxonomía?

Disculpa. Es cierto que no es una palabra que suela escucharse muy a diario, así que déjame explicarte primero qué significa esta palabreja. Una taxonomía, es una manera de clasificar o agrupar cosas.

Volviendo al ejemplo de los coches, piensa en un concesionario y la gama de vehículos que tiene. Para que a los clientes les resulte más fácil verlos en la exposición, quiere agruparlos por su tipo, y cada tipo, mostrarlo en una sección distinta del concesionario.

Esto, sería haber hecho una taxonomía de los vehículos. Ahora, vamos a ver cómo puedes crear una taxonomía personalizada para WordPress.

Piensa un nombre para tu taxonomía

Muy sencillo, ¿verdad? Lo primero que debes hacer a la hora de crear una taxonomía personalizada para tus contenidos en WordPress es pensar en como la vas a llamar. Como en el ejemplo que teníamos entre manos hablábamos de tipos de coches, la taxonomía la puedes definir como «Carrocería» (o «Bodywork», en inglés).

Ya está. ¿Has visto que fácil? Pasemos al siguiente punto entonces.

¿A qué tipo de contenido se la vas a asignar?

Al principio del artículo, he mencionado que cada taxonomía debe ir asociada a un (o varios) tipo de contenido. Siguiendo con el ejemplo de los coches, e imaginando que ya tienes un tipo de contenido personalizado llamado «Cars», asignarás tu taxonomía a ese contenido. ¿Cómo? Tranquilo que te lo explico en las siguientes líneas.

Define sus etiquetas (labels)…

Igual que ocurría con los tipos de contenido personalizados, las taxonomías también necesitan unas etiquetas (o textos), para que el usuario sepa a lo que se está enfrentando. Estas son las etiquetas con las que te vas a encontrar.

  • name: Nombre de la taxonomía en plural. Para el ejemplo, «Carrocerías» / «Bodyworks» (Lo pongo en español e inglés, ya que cuando desarrolles cualquier cosa en WordPress que quieres que sea traducida, lo vas a tener que hacer en el idioma anglosajón).
  • singular_name: Igual que el anterior, pero en singular («Carrocería» / «Bodywork»).
  • menu_name: Será el nombre que mostrará en el menú lateral de WordPress, dentro del backoffice («Carrocerías» / «Bodyworks»).
  • all_items: Este texto aparecerá en cualquier lugar del backoffice en el que se haga referencia a todos los elementos de la taxonomía («Todas las carrocerías» / «All Bodyworks»).
  • edit_item: Igual que el anterior, pero para editar un elemento («Editar carrocería» / «Edit Bodywork»).
  • view_item: Texto que se mostrará en los enlaces para ver la taxonomía («Ver carrocería» / «View Bodywork»).
  • update_item: Si «all» era para todos, «edit» para editar y «view» para ver… ¿Para qué puede ser «update»? Exacto, para la etiqueta de actualizar el elemento («Actualizar carrocería» / «Update bodywork»).
  • add_new_item: Será el texto que aparecerá para indicar que puedes crear un nuevo elemento («Nueva carrocería» / «New Bodywork»).
  • new_item_name: Otra etiqueta, que por su nombre, es muy fácil de identificar. Se mostrará junto al campo en el que el usuario tenga que introducir el nombre del elemento («Nombre de la nueva carrocería» / «New Bodywork Name»).
  • parent_item: Sirve para el texto que aparecerá dentro del campo desplegable con el nombre de otros elementos del mismo tipo, para definir si el que estás creando ahora es hijo del otro. («Carrocería padre» / «Parent Bodywork»). Solo para las taxonomías que sean del tipo «categoría».
  • parent_item_colon: Igual que el anterior, pero el texto aparecerá junto al campo desplegable, con dos puntos («Carrocería padre:» / «Parent Bodywork:»). Al igual que su hermano de arriba, solo para las taxonomías que sean del tipo «categoría».
  • search_items: Es el texto que aparece junto al campo para buscar elementos de esa taxonomía («Buscar carrorecías» / «Search Bodyworks»).
  • popular_items: Se trata del texto que aparecerá para definir a los elementos más populares («Carrocerías populares» / «Popular Bodyworks»). Solo para las taxonomías del tipo «etiqueta».
  • separate_items_with_commas: Es el texto que indica al usuario, dentro de la página para crear un contenido del tipo al que pertenece esta taxonomía (recuerda que en el ejemplo era «coches»), que si quiere crear varias, debe separarlas por comas («Separa las carrocerías por comas» / «Separate Bodyworks with Commas»). Solamente se utiliza para las taxonomías del tipo «etiqueta»).
  • add_or_remove_items: Es el texto que indicará al usuario que se pueden añadir o eliminar elementos de la taxonomía («Añadir o eliminar carrocerías» / «Add or Remove Bodyworks»). Este texto también corresponde solamente a las taxonomías del tipo «etiqueta».
  • choose_from_most_used: Este texto aparecerá en el enlace que hay debajo del campo para crear una nueva taxonomía del tipo etiqueta, dentro de la página para crear el contenido («Elige entre las carrocerías más utilizadas» / «Choose from Bodyworks most used»).
  • not_found: Se trata del texto que aparecerá cuando se intente buscar una taxonomía de este tipo por su nombre y no haya ninguna coincidencia («No se ha encontrado ninguna carrocería» / «Bodywork not found»).
  • back_to_items: El texto mostrado en el enlace que aparece después de actualizar un elemento («Volver a carrocerías» / «Back to Bodyworks»).

… y sus argumentos

Otra información que es de vital importancia proporcionar cuando crees una taxonomía personalizada para WordPress son sus argumentos, o dicho de otra forma, los parámetros que te van a ayudar a configurar dicha taxonomía.

  • public: Con este argumento puedes definir si la taxonomía será visible públicamente, ya sea a través del backoffice de la web o desde el front.
  • publicly_queryable: Este argumento define si la taxonomía puede ser consultada de forma pública.
  • show_ui: Gracias a este argumento, puedes indicar si quieres generar una interfaz de usuario por defecto para la taxonomía o no.
  • show_in_menu: Con este argumento puedes definir si la taxonomía se mostrará en el menú de tu backoffice, dentro del menú del tipo de contenido al que ha sido asignada, o no.
  • show_in_nav_menus: Este argumento define si la taxonomía puede ser mostrada o no para ser seleccionada en los menús de navegación.
  • show_in_rest: Gracias a este argumento, podrás indicar si quieres que se incluya la taxonomía en la REST API.
  • rest_base: Este argumento te permitirá definir la URL base de la REST API para la taxonomía.
  • rest_controller_class: Con este argumento puedes definir el nombre de la clase para el controlador de la API.
  • show_tagcloud: Este argumento te ayudará a definir si permites que el widget Tag Cloud utilice esta taxonomía o no.
  • show_in_quick_edit: ¡Exacto! ¡Has acertado! Gracias a este argumento podrás indicar si quieres que la taxonomía se muestre en el panel de edición rápida del tipo de contenido al que pertenece.
  • meta_box_cb: Con este argumento podrás asociar una función para mostrarla en el metabox de la taxonomía.
  • show_admin_column: Este argumento te permitirá definir si quieres que se creen columnas, de forma automática, en la tabla de los tipos de contenidos a los que está asociada la taxonomía.
  • description: Con este argumento podrás incluir una descripción de la taxonomía.
  • hierarchical: Gracias a este argumento, puedes indicar si quieres que la taxonomía sea del tipo categoría o etiqueta, con solo indicar el valor de verdadero (true) o falso (false), respectivamente.
  • update_count_callback: En este argumento podrás indicar una función que sea llamada cada vez que se actualice el contador de objetos de los tipos de contenidos asociados.
  • query_var: Este argumento permite definir si quieres que se utilice o no una variable con el nombre de la taxonomía en la URL para realizar búsquedas de la misma.
  • rewrite: Con este argumento podrás definir el formato de la URL de los tipos de contenidos a los que se asigne un elemento de la taxonomía.
  • capabilities: Gracias a este argumento podrás definir una serie de permisos para la taxonomía.
  • sort: Este argumento te ayudará a definir si la taxonomía debe recordar el orden en el cual los elementos son asignados a los tipos de contenido.
  • _builtin: Este argumento se suele utilizar para taxonomías que vienen por defecto en el núcleo de WordPress, así que te recomiendo que no lo uses.

¿Categoría o etiqueta?

Como te he explicado unas líneas más arriba, puedes definir si tu taxonomía va a ser del tipo «categoría» o «etiqueta», estableciendo el parámetro «hierarchical» a true o false, respectivamente. Pero, ¿cómo sabes cuando tienes que decantarte por una u otra opción? Muy sencillo.

Vamos a volver a nuestra taxonomía de ejemplo: Bodywork (carrocería, en inglés). Imagina, que de esta taxonomía, puedan descender una serie de subtaxonomías, que sean cada uno de los componentes de la carrocería: doors (puertas), wheels (ruedas), glass (cristal),… Esta taxonomía, al tener descendientes, tendría que ser del tipo «categoría», ya que las que son del tipo «etiqueta» no lo permiten.

Por lo tanto, si necesitas (o crees que vas a necesitar) que tu taxonomía tenga descendientes, establece «hierarchical» a true. De lo contrario, hazlo a false.

Registra tu taxonomía

Muy bien, ya estás llegando casi al final. Has definido las etiquetas (labels) y los argumentos de tu taxonomía. Tan solo te queda registrarla y tendrás tu taxonomía lista para ser utilizada.

Para registrar una taxonomía, necesitas la función register_taxonomy(), la cual recibe tres parámetros:

  • El nombre que quieras darle a tu taxonomía (ejemplo: «bodywork»).
  • Los tipos de contenidos a los que se asociarán la taxonomía (ejemplo: «cars»).
  • Un array con los argumentos que has definido en los puntos anteriores (no es necesario ponerlos todos, solo aquellos que quieras personalizar).

Por aquí te dejo un ejemplo de como quedaría el código para crear la taxonomía que has estado viendo en esta entrada:

Conclusiones

A lo largo de este artículo, has podido aprender los distintos pasos que tienes que seguir para crear una taxonomía personalizada para tus contenidos en WordPress. Desde pensar en el nombre, pasando por definir sus etiquetas y sus argumentos, hasta registrarla.

Ahora es tu turno. Te recuerdo, que para cualquier duda que tengas, contactes conmigo a través de mi formulario de contacto, o dejes un comentario en el artículo. Cualquier pregunta que tengas, estaré encantado de ayudarte a resolverla.

También puedes visitar el Codex para ampliar más información sobre como crear taxonomías personalizadas para tus contenidos en WordPress.