1. Code
  2. WordPress

Dominar los Meta Datos en WordPress: Una Introducción A Los Meta Datos

Parte de lo que hace que WordPress sea una herramienta potente de CMS es la habilidad de usar la tabla wp_postmeta para almacenar campos personalizados. Estos campos personalizados pueden contener información adicional como campos para el SEO añadidos por un plugin de SEO, o podrían usarse para mostrar contenido adicional en el front-end.
Scroll to top

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

Parte de lo que hace que WordPress sea una herramienta potente de CMS es la habilidad de usar la tabla wp_postmeta para almacenar campos personalizados. Estos campos personalizados pueden contener información adicional como campos para el SEO añadidos por un plugin de SEO, o podrían usarse para mostrar contenido adicional en el front-end.

Al añadir esta información adicional a campos puedes crear cadenas personalizadas para determinar el orden en el que se muestra tu contenido.

Aprender a trabajar con estos datos es una forma excelente para aprender conceptos esenciales de PHP incluyendo los arrays, los loops y los objects. Para llegar a ser un experto en meta datos de WordPress, debes primero ser experto en todos los tipos de arrays.

En esta serie de tutoriales, te mostraré varias formas de trabajar con los post meta data de WordPress y los meta data de usuario con ejemplos concretos sobre la manera de trabajar con arrays.

Descubrirás la diferencia entre un array indexado y un array asociativo así como ha crear sentido a partir de arrays multi-dimensionales.

¿Qué Son Los Meta Datos de Entrada?

La definición más técnica de los metadatos de entrada es que se trata de información que se guarda en la tabla wp_postmeta. Por defecto esto no es mucho decir, pero cada vez que un plugin o un tema añade un campo personalizado, los datos introducidos en dicho campo se almacenarán en la tabla wp_postmeta

Un buen ejemplo podrían ser los campos SEO añadidos por los plugins para SEO. Por ejemplo, piensa en una meta descripción. Este campo se guarda en la tabla postmeta.  

Adicionalmente, los perfiles de usuario en WordPress pueden ampliarse mediante campos personalizados. En una relación que refleja wp_posts y wp_postmeta, estos campos se almacenan en la tabla wp_usermeta - no en la tabla wp_user.

En esta serie, no discutiremos sobre como añadir campos personalizados en WordPress - esto es otro tema por sí mismo. Los campos personalizados pueden ser añadidos en el editor de entradas con la meta box "Custom Fields", mediante su implementación directa en un plugin o tema, o a través del uso de un marco especializado como Pods o Advanced Custom Fields.

Técnicamente hablando, un meta dato de post es cualquier información que es almacenada en la tabla wp_postmeta. Como hemos mencionado previamente, un buen ejemplo de meta datos de post sería el campo de la meta descripción que introducen plugins como WordPress SEO.

yoastyoastyoast

Métodos para Obtener Meta Datos

Utilizar get_post_meta()

WordPress no proporciona varias formas de obtener meta datos para un post.

Podemos obtener sólo un campo usando get_post_meta() especificando ese campo. Por ejemplo, para conseguir un campo llamado 'foo' del actual post en el loop podríamos hacer lo siguiente get_post_meta( get_the_id(), 'foo', true );.

Observa que hemos establecido el último argumento a true. Este argumento llamado "single" determina si queremos que nos devuelva un solo valor o una cadena de valores.

Usar WP_Query

En ocasiones queremos crear un loop completo con meta datos, y aquí es donde WP_Query no es muy útil. WP_Query nos permite hacer lo que se conoce como 2meta query", en donde solicitamos posts basándonos en uno o más campos meta, y se nos devuelven los posts que tienen los valores que se corresponden con un valor específico. El resultado es una colección a través de la cual podemos crear un bucle.

Por ejemplo, imagina que tenemos un campo llamado "author_name" y queremos devolver cada post al campo en el que author_name tenía el valor 'J.R.R Tolkien'. WP_Query nos permite hacerlo con facilidad - veremos esto más tranquilamente en la cuarta parte de esta serie.

¡Los Posts No Lo Son Todo!

Los posts no son el único tipo de datos que tiene meta datos. Por ejemplo, ¿conoces todos esos campos que están disponibles en el perfil del usuario? Todos ellos son campos meta, pero en lugar de estar almacenados en la tabla wp_postmeta, están guardados en la tabla wp_usermeta.

Como resultado, tenemos funciones especiales y clases para la infromación meta de los usuarios. La función get_user_meta()get_author_meta() son los equivalentes para los usuarios a get post meta. WP_Query también tiene su propio equivalente para los usuarios WP_User_Query.

Objetos Versus Cadenas

Cuando usas funciones como get_post_meta() para obtener más de un campo, es probable que obtengas lo que se llama una cadena multi-dimensional. Una cadena multi-dimensional es también conocida como una cadena de cadenas. Cada cadena dentro de la cadena multi-dimensional podría ser a su vez otra cadena multi-dimensional. 

¿Parece confuso? ¡No te preocupes! En esta serie, explicaremos como leer cadenas multi-dimensionales para visualices los datos en el orden que necesites.

Por último - como ya he mencionado antes - otro método para obtener información sobre un post es usar WP_Query. Cuando usas la clase WP_Query estás usando lo que se llama PHP orientado a objetos y lo que obtienes es diferente a una cadena - es un objeto.

De alguna manera los objetos son similares a las cadenas en el sentido de que podrían contener cadenas de información. Pero con un objeto puedes usar cualquier función disponible en una clase. Esto significa que no solo podemos usar el objeto WP_Query para obtener un valor para un campo meta, sino que también podremos usar sus métodos internos, el más común de los cuales es the_post().

Lo Suiguiente

En este punto, hemos realizado un análisis de los varios tipos de meta datos, como se almacenan, como pueden ser representados, y como recuperarlos.

Conforme vayamos avanzando con esta serie, veremos con más profundidad cada aspecto de las tablas de meta datos, APIs asociadas, y sobre cómo podemos sacarles partido para introducir funcionalidad y flexibilidad en nuestros proyectos.