1. Code
  2. Coding Fundamentals
  3. Databases & SQL

Comprende y trabaja con la tabla de opciones de WordPress

En las primeras partes de esta serie, miramos las tablas de la base de datos de WordPress y las relaciones entre ellas. En esta parte cubriré una tabla que es diferente de las otras, la tabla wp_options. Como puedes ver en el diagrama de abajo, esta es la única tabla que se sienta por sí sola.
Scroll to top
This post is part of a series called Understanding and Working with Data in WordPress .
Understanding and Working with Taxonomies and Terms in WordPress
Understanding and Working with Data in WordPress - Multisite

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

En las primeras partes de esta serie, miramos las tablas de la base de datos de WordPress y las relaciones entre ellas.

En esta parte cubriré una tabla que es diferente de las otras, la tabla wp_options. Como puedes ver en el diagrama de abajo, esta es la única tabla que se sienta por sí sola:

La tabla de opciones almacena un tipo de datos diferente al de las otras tablas: en lugar de almacenar datos sobre el contenido de tu sitio, almacena datos sobre el sitio mismo. Los datos se escriben en la tabla de opciones mediante la Options API (API de opciones) o la Settings API (API de configuración), que consisten en un conjunto de funciones que se utilizan para agregar, actualizar y eliminar datos de esta tabla.

Puedes agregar valores a las opciones existentes y también puedes agregar nuevos registros a la tabla cuando quieras crear nuevas opciones.

En este tutorial veré diferentes aspectos de la tabla de opciones y cómo interactúas con ella:

  • Acceso a la tabla wp_options
  • Estructura de la tabla wp_options
  • Llenando la tabla wp_options
  • Las API de opciones
  • El API de configuración

Me limitaré a dar una visión general de las API y de como interactúan con la tabla de opciones; si quieres saber más, lee la serie sobre la API de configuración de Tom McFarlin.

Acceso a la tabla wp_options

Como la tabla wp_options almacena datos relacionados con la configuración y la administración del sitio en su conjunto, el acceso a ella está restringido. Para poder modificar la configuración y las opciones, los usuarios deberán tener la capacidad de manage_options. El único rol de usuario predeterminado con esta capacidad es el rol de administrador (y en Multisite, el rol de administrador de red).

Esto significa que si necesitas agregar opciones a las que otros roles de usuario tienen acceso, tendrás que asignarles la capacidad de manage_options. Esto conlleva riesgos, así que ¡solo hazlo si estás seguro!

Estructura de la tabla wp_options

La tabla de opciones tiene una estructura similar a las tres tablas de metadatos. Tiene cuatro campos:

  • option_ID
  • option_name
  • option_value
  • autoload, especifica si la opción se carga automáticamente en cada carga de la página, por defecto es en la instalación de un solo sitio y no en Multisitio.

Cada registro en el campo option_name será un valor único: si agregas más de un valor a una opción, WordPress lo almacena en un array en el campo option_value. Un buen ejemplo de esto es la opción active_plugins, que almacena un array de plugins activados en tu sitio.

Cuando añadas, edites o elimines datos en la tabla wp_options, debes especificar siempre el option_name, como mostraré más adelante en este tutorial.

Llenando la tabla wp_options

La tabla wp_options se rellena a partir de una de las tres fuentes:

  • las pantallas de configuración por defecto
  • pantallas de opciones de temas
  • pantallas de configuración y opciones que se añaden mediante plugins

Hay un número de opciones incorporadas a WordPress, puedes ver todas ellas en la Option Reference (Referencia de Opciones). Pero también puedes crear las tuyas propias.

Para crear nuevas opciones en tu tema o plugin, utilizarías la API de opciones o la API de configuración. A continuación, trataré estos temas con más detalle.

Uso de la API de opciones

La API de opciones consiste en ocho funciones que permiten añadir, obtener, actualizar o eliminar opciones:

Función Parámetros Notas
add_option() $option$value$deprecated$autoload
Solo se requiere $option. Si hay un registro existente con tu parámetro $option como el valor de su campo option_name, WordPress agregará su $valor a un array en el campo option_value para ese registro, de lo contrario creará un nuevo registro.
delete_option() $option Elimina todos los campos de esa opción
get_option() $option$default
$default (opcional) es el valor predeterminado que se devuelve si no se almacena ningún valor contra la opción en la base de datos.
update_option() $option$new_value
$new_value es el valor que poblará el campo option_value
add_site_option() $option$value
Similar a add_site_option() pero añade la opción network-wide en Multisite (lo que significa que la opción se almacena en la tabla wp_options y no en la tabla wp_XX_options donde XX es el ID del sitio). $autoload no está incluido ya que las opciones del sitio no se cargan automáticamente en Multisite y esto no puede ser anulado.
delete_site_option() $option
Lo mismo que delete_option() pero funciona en toda la red en Multisite.
get_site_option() $option$default , $use_cache
Similar a get_option() pero recupera la opción de toda la red en Multisite.
update_site_option() $option$value
Idéntico a update_option() pero funciona en toda la red en Multisite.

Ten en cuenta que al crear opciones, ya sea a través de la API de opciones o de la API de configuración, puedes crear registros sin valor en el campo option_value. Esto permite a los administradores del sitio rellenar ese campo posteriormente.

Uso de la API de configuración

Además de la API de opciones, también puedes utilizar la API de configuración para interactuar con los datos de la tabla wp_options. El API de configuración te permite crear ajustes que los administradores del sitio pueden utilizar para añadir o actualizar datos en la tabla de opciones; añade una interfaz de usuario a tus opciones.

La API de configuración tiene más que la API de opciones, así que no lo trataré en detalle aquí, pero esencialmente tiene tres elementos:

  • el ajuste (los datos en la tabla wp_options)
  • el campo (que se utiliza para añadir y editar datos)
  • la sección de ajustes, que es un grupo de campos relacionados.

Las dos funciones de la API de configuración que interactúan directamente con la tabla wp_options son las siguientes:

Función Parámetros Notas
register_setting() $option_group$option_name$sanitize_callback
El parámetro $option_name hace referencia al campo option_name de la tabla wp_options; los demás parámetros interactúan con otras funciones de la API de configuración
unregister_setting() $option_group$option_name$sanitize_callback
Desregistra los ajustes de la tabla wp_option, normalmente usada con ganchos de desactivación para temas o plugins.

Estas funciones no añaden valores a las opciones de la tabla wp_options, pero crean configuraciones que pueden tener valores añadidos a través de otras funciones en la API de configuraciones.

Resumen

La tabla wp_options es única entre las tablas de la base de datos de WordPress en el sentido de que no comparte una relación con ninguna de las otras tablas. Esto se debe a que almacena datos sobre el sitio o la red, y no el contenido. Para interactuar con la tabla de opciones, puedes utilizar las funciones de la API de opciones o la API de configuración, y también puedes hacer uso de funciones que añaden datos en toda la red en un aislamiento Multisite (multisitio).

En la parte final de esta serie hablaré de Multisite, ya que utiliza algunas tablas de bases de datos adicionales que no han sido cubiertas hasta ahora en esta serie, y también crea múltiples instancias de cada una de las tablas centrales, una para cada sitio.