Comprender y trabajar con la tabla de opciones de WordPress

En las partes anteriores de esta serie, observamos las tablas en la base de datos de WordPress y las relaciones entre ellas. 

En esta parte cubriré una tabla que es diferente de las demás: la wp_options mesa. Como puede ver en el diagrama a continuación, esta es la única tabla que se asienta por sí sola:

La tabla de opciones almacena un tipo diferente de datos de las otras tablas: en lugar de almacenar datos sobre el contenido de su sitio, almacena datos sobre el sitio en sí. Los datos se escriben en la tabla de opciones utilizando la API de opciones o la API de configuración, ambas consisten en un conjunto de funciones utilizadas para agregar, actualizar y eliminar datos de esta tabla. 

Puede agregar valores a las opciones existentes y también puede agregar nuevos registros a la tabla cuando desee crear nuevas opciones.

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

  • Acceso al wp_options mesa
  • Estructura de la wp_options mesa
  • Poblando el wp_options mesa
  • La API de opciones
  • La API de configuración

Solo daré una descripción general de las API y cómo interactúan con la tabla de opciones: si desea obtener más información, lea la serie de Tom McFarlin en la API de configuración. 

Acceso a la tabla wp_options

Como el wp_options la tabla almacena los datos relacionados con la configuración y administración del sitio en su totalidad, el acceso a él está restringido. Para poder modificar la configuración y las opciones, los usuarios deberán tener la opciones de gestión capacidad. La única función de usuario predeterminada con esta capacidad es la función de administrador (y en Multisite, la función de administrador de red). 

Esto significa que si necesita agregar opciones a las que otros roles de usuario tienen acceso, deberá asignar el opciones de gestión Capacidad para ellos. 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:

  • opción_ID
  • option_name
  • valor de la opción
  • carga automática - Especifica si la opción se carga automáticamente en cada carga de página. en un solo sitio de instalación y no en multisite.

Cada registro en el option_name campo será un valor único: si agrega más de un valor a una opción, WordPress almacena esto en una matriz en el valor de la opción campo. Un buen ejemplo de esto es el active_plugins Opción, que almacena una serie de complementos activados en su sitio..

Al agregar, editar o borrar datos en la wp_options tabla, siempre debe especificar la option_name, Como mostraré más adelante en este tutorial..

Poblando la tabla wp_options

los wp_options tabla se rellena desde una de tres fuentes:

  • las pantallas de configuración por defecto
  • pantallas de opciones de tema
  • Configuraciones y pantallas de opciones que añades a través de complementos.

Hay una serie de opciones integradas en WordPress - puedes ver todas estas en la Referencia de opciones. Pero también puedes crear tu propio.

Para crear nuevas opciones en su tema o complemento, debe utilizar la API de opciones o la API de configuración. Cubriré esto con más detalle a continuación..

Usando la API de Opciones

La API de opciones consta de ocho funciones que le permiten agregar, obtener, actualizar o eliminar opciones:

Función Parámetros Notas
add_option () $ opción$ valor$ en desuso$ autoload
Solamente $ opción es requerido. Si hay un registro existente con su $ opción parámetro como el valor de su option_name campo, WordPress agregará su $ valor a una matriz en el valor de la opción campo para ese registro, de lo contrario se creará un nuevo registro.
delete_option () $ opción Borra todos los campos para esa opción
get_option () $ opción$ por defecto
$ por defecto (opcional) es el valor predeterminado que se devolverá si no se almacena ningún valor contra la opción en la base de datos.
update_option () $ opción$ new_value
$ new_value es el valor que poblará el valor de la opción campo
add_site_option () $ opción$ valor
Similar a add_site_option () pero agrega la opción en toda la red en Multisite (lo que significa que la opción está almacenada en el wp_options mesa y no la wp_XX_opciones mesa donde XX es el ID del sitio). $ autoload no se incluye ya que las opciones del sitio no se cargan automáticamente en Multisite y esto no puede ser anulado.
delete_site_option () $ opción
Lo mismo que delete_option () pero funciona en toda la red en Multisite.
get_site_option () $ opción$ por defecto , $ use_cache
Similar a get_option () pero recupera la opción de toda la red en Multisite.
update_site_option () $ opción$ valor
Idéntico a update_option () pero funciona en toda la red en Multisite.

Tenga en cuenta que al crear opciones, ya sea a través de la API de opciones o la API de configuración, puede crear registros sin valor en el valor de la opción campo. Esto permite a los administradores del sitio rellenar ese campo en un momento posterior.

Usando la API de configuración

Además de la API de opciones, también puede utilizar la API de configuración para interactuar con los datos en el wp_options mesa. La API de configuración le permite crear configuraciones que los administradores del sitio pueden usar para agregar o actualizar datos en la tabla de opciones; agrega una interfaz de usuario a sus opciones.

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

  • la configuración (los datos en el wp_options mesa)
  • el campo (que se utiliza para agregar y editar datos)
  • La sección de configuración, que es un grupo de campos relacionados..

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

Función Parámetros Notas
register_setting () $ option_group$ option_name$ sanitize_callback
los $ option_name parámetro se refiere a la option_name campo en el wp_options mesa; Los otros parámetros interactúan con otras funciones en la API de configuración.
unregister_setting () $ option_group$ option_name$ sanitize_callback
Eliminar la configuración de la wp_options tabla: normalmente se utiliza con ganchos de desactivación para temas o complementos.

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

Resumen

los wp_options table es única entre las tablas de base de datos de WordPress en 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, puede usar las funciones en la API de opciones o en la API de configuración, y también puede hacer uso de las funciones que agregan datos de toda la red en un aislamiento multisitio..

En la parte final de esta serie, veré Multisite, ya que utiliza algunas tablas de bases de datos adicionales que no se han cubierto hasta ahora en esta serie, y también crea varias instancias de cada una de las tablas principales, una para cada sitio..