Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
WordPress termmeta

Guía sobre WordPress term meta

El lanzamiento de la versión de WordPress 4.4 está previsto para el próximo 8 de diciembre. Trae consigo muchas novedades entre las que se encuentran la REST API, las imágenes responsive, el nuevo tema twentysixteen…y (por fin) los termmeta!

¿Por qué digo que por fin? La funcionalidad de poder enriquecer los terms de WordPress con metadatos es algo que se espera desde hace mucho tiempo, de hecho el ticket original para esta petición se abrió hace 6 años. Y por fin, se incluye en la nueva versión.

No obstante, cierto es que podíamos suplir esta carencia con el uso de plugins (yo personalmente utilizaba Advanced Custom Fields), pero que a partir de ahora esté incluido en el core de WordPress es una gran noticia para los desarrolladores de temas y plugins.

 

¿Qué es termmeta?

Los terms son los elementos pertenecientes a una taxonomía. ¿Y que es una taxonomía? Una taxonomía es un sistema para categorizar o clasificar los posts (o post-type). Por defecto WordPress incluye dos taxonomías para los posts: Categorías y Etiquetas. Y los elementos de cada taxonomía son los terms.

Tras esta breve introducción, podemos entender que termmeta es toda la información adicional que podemos agregar a un term determinado. Actualmente tenemos esta misma funcionalidad para los posts, con los postmeta, donde podemos agregar información adicional al post. Y también para los usuarios: users y usermeta, y para los comentarios: comments y commentmeta.

Ahora quizá se entienda un poco más el ¡por fin! Hasta ahora podíamos extender campos personalizados a posts, usuarios y comentarios, pero no para los terms, excepto si usábamos algún plugin.

 

En la vida real, ¿para qué nos pueden ser útil los termmeta?

La meta información de la manera que está planteada en WordPress, te permite agregar cualquier dato adicional a un objeto determinado. Es decir, guardaremos en la base de datos un par clave/valor relacionado con el ID de un objeto concreto.

De ésta manera no tienes límite a la hora de agregar información extra en función de tus necesidades. A continuación sólo una pequeña muestra de algunas ideas que nos pueden ser útiles para dotar a nuestros terms de información adicional:

  • Imagen destacada
  • Icono
  • Color
  • Campos para hacer SEO personalizado
  • Asignar templates específicos para categorías determinadas
  • Asignar un orden
  • Marcar un term como privado

 

¿Cómo usar termmeta?

WordPress incluye nuevas funciones para el tratamiento (añadir, modificar, obtener y borrar) de los termmeta. Si estás familiarizado con los post, comment o user meta, te resultará muy fácil entenderlas. Estas nuevas funciones son: add_term_meta(), update_term_meta(), delete_term_meta() y get_term_meta().

Vamos a ver con un ejemplo práctico cómo añadir a las categorías una imagen destacada, y 3 campos adicionales para realizar un SEO personalizado. El primer paso es añadir los nuevos campos al formulario de añadir y editar categorías. Para ello tenemos dos hooks:

  • {$taxonomy}_add_form_fields, para el formulario de añadir nuevo
  • {$taxonomy}_edit_form_fields, para el formulario de editar

 

En nuestro ejemplo, vamos a añadirlos a la taxonomía Category. Los formularios de añadir nueva taxonomía y editar taxonomía poseen diferente estructura HTML, por lo tanto tenemos que dividir en dos funciones la carga de nuestros nuevos campos. Añadiremos en nuestro functions.php:

Ahora vamos a enlazar el botón de añadir imagen destacada para la categoría con la librería multimedia. Agregaremos en nuestro functions.php:

Como se puede ver, hemos incluido el archivo custom-fields.js en nuestro admin. Dentro de este archivo enlazamos nuestro botón de subir imagen con la librería multimedia:

Por último falta salvar los metadatos cuando añadamos o editemos una categoría. Para esta acción usaremos los hooks create_{$taxonomy} y edit_{$taxonomy}. Afortunadamente en esta ocasión nos servirá la misma función:

Con esto ya tenemos la funcionalidad completa para agregar campos adicionales a nuestras categorías. Vamos ahora a ir un poco más allá, y añadiremos al listado de categorías la imagen destacada que hemos adjuntado, para ver de un vistazo las imágenes que vayamos asociando a cada categoría. Añadiremos a nuestro functions.php:

campos personalizados categorias

Esto sólo es un ejemplo de cómo enriquecer una taxonomía concreta mediante el uso de metadatos. Después en nuestro front podremos recuperar esta información y usarla para dar formato, destacar o añadir información adicional a nuestras categorías.

Puede que también te interese

Cómo eliminar la hoja de estilos de Gutenberg si no lo utilizas tras WordPress 5.0
Cómo eliminar la hoja de estilos de Gutenberg si no lo utilizas tras WordPress 5.0
¿Has actualizado a WordPress 5.0 pero tienes desactivado Gutenberg? Imagino que será el caso de mucha gente, que esperará a darle un tiempo, hasta que…
WordPress Hooks: Filters
WordPress Hooks: Filters
En la entrada anterior vimos lo que eran los Actions en WordPress. En esta vamos a ver el otro tipo de hook: los filters. Los…
Cómo crear un formulario de log-in/log-out personalizado con WordPress
Cómo crear un formulario de log-in/log-out personalizado con WordPress
En la anterior entrada Cómo restringir el acceso al back-end de WordPress a usuarios no administradores vimos como limitar el acceso al panel de control…
Cómo restringir el acceso al back-end de WordPress a usuarios no administradores
Cómo restringir el acceso al back-end de WordPress a usuarios no administradores
A continuación vamos a ver cómo bloquear o restringir el acceso al back-end o escritorio de WordPress (con y sin plugins), incluso ocultaremos el admin…