1. Code
  2. WordPress

Como trabajar con Term Meta en WordPress: Entender las Taxonomías

En series recientes, hablamos sobre cómo podríamos trabajar con metadatos para varias de las clases principales de WordPress.
Scroll to top
7 min read
This post is part of a series called How to Work With WordPress Term Meta.
How to Work With WordPress Term Meta: Term Metadata API

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En series recientes, hablamos sobre cómo podríamos trabajar con metadatos para varias de las clases principales de WordPress.

Esto incluía:

A lo largo de la serie, hablamos un poco sobre cómo WordPress 4.4 introdujo el concepto de term metadata. No quería presentar el concepto en el contexto de esa serie porque dependía de la comprensión de algo que a menudo resulta un poco complicado para los principiantes.

Esto es en lo que esta serie pretende enfocarse.

Sobre WordPress, las Taxonomías y los Términos

En WordPress, los conceptos de taxonomías y términos van de la mano. Profundizaré más sobre esto en un momento. Pero para trabajar correctamente con term metadata, creo que es importante entender las taxonomías, los términos y sus relaciones. De lo contrario, ¿cómo podemos tener una comprensión completa de lo que estamos haciendo cuando trabajamos con ellos a un nivel programático?

En esta serie formada por dos artículos que es una continuación, vamos a echar un vistazo a las taxonomías, a lo que son, al papel que desempeñan en WordPress y a su relación con los términos. Después vamos a dirigir nuestra atención a los términos y a cómo trabajar con la nueva API de metadatos de término.

Si aún no has leído la serie anterior, te recomiendo hacerlo ya que expone algunas bases sobre cómo funciona la API que vamos a explorar. No obstante, si prefieres no hacerlo, no pasa nada. Esta serie debe cubrir todo lo que necesitas saber.

¿Qué Son las Taxonomías?

Como se definen en el Codex:

En WordPress, una "taxonomía" es un mecanismo para agrupar algunas entradas (o enlaces o tipos de entradas personalizadas).

Ciertamente, no se tarta de una palabra que escuches a menudo y, a veces, algunos se confundirán al hablar sobre taxonomías y términos. Es decir, que van a utilizar una frase de ejemplo como un ejemplo de una taxonomía pero lo que están haciendo, en ese caso, está utilizando un término. Tocaré en eso en solo un poco.

En pocas palabras, piensa en las taxonomías como una forma de agrupar cosas juntas. De forma predeterminada, WordPress incluye dos taxonomías: categorías y etiquetas. Hablaremos sobre cada una de ellas con más detalle en breve.

The WordPress Categories InterfaceThe WordPress Categories InterfaceThe WordPress Categories Interface

Ahora, una advertencia, al menos en lo que se refiere a WordPress: las taxonomías pueden ser jerárquicas o no. Quizá el ejemplo más común de la idea anterior sea el siguiente:

  • Cuando creas una categoría en WordPress, puedes hacer que sea una categoría de nivel superior o una sub-categoría de una categoría preexistente. Por ejemplo, un águila podría ser una sub-categoría de aves.
  • Cuando creas una etiqueta en WordPress, creas una palabra o una frase con la que deseas marcar (o, más literalmente, etiquetar) tu entrada. No hay ninguna noción de etiquetas hijo o padre.

Y esa es la diferencia entre las taxonomías jerárquicas y las no jerárquicas. Es fácil, ¿no? Aquellas que admiten hijos, como las categorías, son jerárquicas; las que no admiten hijos, como las etiquetas no lo son.

The WordPress Tags InterfaceThe WordPress Tags InterfaceThe WordPress Tags Interface

Con el trabajo que vamos a realizar en esta serie, esto no juega ningún papel particular, simplemente nos ayuda a ganar una comprensión más profunda de lo que significa este lenguaje dentro del contexto de nuestros esfuerzos de desarrollo.

Pero cuando comenzamos a crear estas entidades mediante programación y les añadimos metadatos, no debería haber ninguna confusión en cuanto a lo que estamos haciendo.

¿Qué Son los Términos?

Hemos definido la taxonomía, pero ¿qué condiciones? Del códice:

En WordPress, un término es una clasificación, un grupo o un subconjunto de una Taxonomía, en donde esta última puede ser una Categoría, una Etiqueta o una Taxonomía Personalizada. Por defecto, los términos tienen un título, un slug, y una descripción. Las taxonomías jerárquicas como categorías pueden definir un término padre.

Teniendo en cuenta lo que hemos discutido hasta ahora, es exactamente lo que deberíamos esperar. Es decir, los términos están asociados con taxonomías. Los términos, sin embargo, tienen varios aspectos notables de los que debemos ser conscientes, especialmente si vamos a crearlos o a trabajar con ellos mediante programación.

Es decir, los términos están compuestos de:

  • un slug
  • un título
  • una descripción

Recuerda que si estamos trabajando con una taxonomía jerárquica, como una categoría, entonces el término puede opcionalmente incluir un término padre.

Para ser claros, esto no significa que una taxonomía no tenga un conjunto de información relacionada con ella. Por ejemplo, una taxonomía requiere un nombre y un tipo de entrada al que vaya asociada, y un número de argumentos que quedan fuera del alcance de este artículo. No obstante, veremos más sobre esto en el artículo siguiente artículo.

¿Cómo Se Relacionan?

La relación entre los términos y las taxonomías es de alguna manera simbiótica, lo que significa que unos no puede existir sin las otras. Esto es especialmente cierto en relación con las taxonomías jerárquicas.

En primer lugar, para aquellos que estén interesados, el Codex de WordPress ofrece un diagrama explicando la relación:

The relationship of hierarchical and non-hierarchical taxonomies and their termsThe relationship of hierarchical and non-hierarchical taxonomies and their termsThe relationship of hierarchical and non-hierarchical taxonomies and their terms

Por ejemplo, podrías tener una taxonomía de Categoría, pero tienes que tener al menos un término asociado a ella. Por esta razón WordPress viene con un término Sin categoría por defecto.

The default terms table with a term for a category and one for a menuThe default terms table with a term for a category and one for a menuThe default terms table with a term for a category and one for a menu

Por otro lado, es posible crear una taxonomía de Etiqueta, pero no tener ninguna etiqueta existente dentro de la base de datos.

Pero, como desarrolladores, ¿podemos llevar esto un paso más allá? Es decir, aunque todo esto se puede crear mediante programación, los usuarios también tienen la capacidad de crearlas y agregarlas. Por lo menos, si la interfaz de usuario dispone de una opción para hacerlo.

Caso: cuando nos fijamos en la interfaz de usuario de WordPress, que todos tenemos la capacidad de crear categorías y etiquetas.

Si, sin embargo, eres un programador y desea hardwire cierta taxonomías y términos en la base de datos, a continuación, tienen la capacidad para ello y para evitar que los usuarios de añadir y eliminar de la interfaz de usuario.

¿Qué Hay de los Metadatos de los Términos?

Hemos expuesto las definiciones de las taxonomías y de los términos, así como las diferencias entre ellos, pero queda una pregunta pendiente: ¿Por qué necesitamos metadatos para los términos? ¿O, quizá, ¿cuál es el propósito de los metadatos para los términos?

Es una buena pregunta, y probablemente sea parte sustancial del por qué esta característica no fue introducida hasta la versión 4.4 de WordPress. Curiosamente, esta característica se introdujo por primera hace más de seis años. El motivo principal para su introducción (citando directamente el Registro):

En este momento no hay ninguna forma específica de almacenar datos adicionales para una taxonomía. Los desarrolladores de plugins tienen que desarrollar su propio método para poder almacenar datos, por ejemplo, almacenándolos codificados en campo descripción o mediante set_option(). Será bueno añadir nuevas funciones para esto, por ejemplo, add_taxonomy_data()/get_taxonomy_data().

Si eres un desarrollador de WordPress experimentado, esto tendrá sentido perfectamente. Sin embargo, no todos llegamos a ese nivel, por lo que no estamos seguros de qué ventajas nos aporta esto.

An empty term meta data tableAn empty term meta data tableAn empty term meta data table

Como todas las otras APIs, permite almacenar información relativa a cualquier término que exista dentro de la base de datos. Esto podría consistir en algo relacionado con el momento en que el término fue creado, quién lo creó, o cuántas entradas están etiquetadas con un término dado, o nos permite asociar una imagen a un término.

Dado que admite un nivel de información arbitraria, las posibilidades son extremadamente amplias en cuanto a lo que podemos hacer con esta información. Y a partir de el siguiente artículo, vamos a ver exactamente eso.

Conclusión

En este punto, deberías saber todo lo que necesitas para trabajar con las taxonomías y los términos. Seguramente, es probable que tengas que leer el Codex un par de veces mientras estés trabajando en un plugin, un tema o una solución a medida para un cliente, pero eso no es algo excepcional para un programador experimentado.

En el siguiente artículo, echaremos un vistazo a cómo trabajar con metadatos de término. Específicamente, veremos código a modo de ejemplo, lo vincularemos con uno de los temas predeterminados de WordPress y supervisaremos la base de datos mientras realizamos los cambios.

Mientras tanto, si estás interesado en WordPress, en el desarrollo de software o en la intersección de ambos, entonces no olvides echar un vistazo a la página de mi perfil en la que se incluyen enlaces a todos los cursos y tutoriales que he publicado en Envato Tuts+.

En segundo lugar, no dudes en seguirme en Twitter, @tommcfarlin, en donde hablo y comparto con frecuencia recursos relacionados con WordPress, o sigue mi blog en donde escribo todos los días sobre el trabajo que esté realizando con WordPress o temas tangencialmente relacionados con él.

Por último, si estás buscando otras utilidades que te ayuden a construir tu creciente conjunto de herramientas para WordPress o código para estudiar y convertirte en alguien más versado en WordPress, no olvides ver lo que tenemos disponible en el Envato Market.

Hasta entonces, por favor no dudes en dejar tus preguntas o comentarios más abajo, y haré todo lo posible para responder a cada uno de ellos.