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:
wp_options
mesawp_options
mesawp_options
mesaSolo 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.
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.!
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. sí
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..
los wp_options
tabla se rellena desde una de tres fuentes:
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..
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.
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:
wp_options
mesa)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.
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..