深入理解 WordPress 设置选项数据表 wp_options
WordPress 数据库中大部分数据表都和另外的数据表有关联, 只有一个比较特殊,他就是 wp_options ,这个数据表在WordPress数据库中是完全独立的,和其他数据表没有任何关系。如下图所见。
wp_option 数据表中存储的是网站设置数据,而不是网站的内容。这些数据可以使用使用 Options API 或 Settings API 来存取,我们可以添加数据到现有的选项中,也可以根据需要添加新选项。
在本文中,我将为大家介绍下面几方面的内容。
-
访问 wp_options 数据表中的数据
-
wp_options 数据表的结构
-
wp_options 数据表中的数据来源
-
WordPress Options API
-
WordPress Settings API
访问 wp_options 数据表中的数据
wp_options 数据表中保存着站点的设置数据,管理着整个网站的设置,对这个数据表的访问必须受到限制,拥有 manage_options 权限的用户才能修改这个数据表中的数据,默认具有这个权限的角色是管理员角色 (在多站点模式中,这个角色为网络管理员)。
也就是说,如果你需要让其他角色的用户访问这个数据表,你必须分配 manage_options 权限给他们,这是一个比较危险的操作,只有你知道自己在做什么的时候,才进行这个操作!
wp_options 数据表的结构
options 数据表和 metadata 数据表结构类似,有4个字段:
-
option_ID – 自增 ID
-
option_name – 设置选项的键
-
option_value – 设置选项的值
-
autoload – 指定该选项是否在页面加载的时候自动加载,在单站点中默认为 yes ,多站点模式下默认为 no 。
option_name 在数据表中是唯一的,如果添加了多个值,WordPress 将把这些值以数组的形式保存在 option_value 字段中, active_plugins 选项就是一个很好的例子,这个选项中保存着当前激活的插件。
添加,编辑或删除 wp_options 数据表的数据时,必须指定 option_name 字段,这个在下面会详细介绍。
wp_options 数据表中的数据来源
wp_options 数据表中的数据主要通过以下三种来源添加。
-
WordPress默认设置选项
-
主题设置选项
-
通过插件添加的设置选项
为了方便存取 wp_options 数据表中的数据,WordPress 为我们提供了一些很方便的 API,当然,我们也可以创建自己的功能函数来存取该表中的数据。要想创建新的设置选项,我们可以使用 Options API 或 Settings API。
使用 WordPress Options API
Options API 有 8 个功能,这些功能允许我们添加、获取、更新或删除设置选项。
函数
|
参数
|
备注
|
add_option()
|
$option,
$value,
$deprecated,
$autoload
|
只有 $option 是必需参数,如果数据表的option_name 字段是$option , WordPress 将添加$value 值作为数组添加到 option_value 字段,如果没有匹配的字段,将添加新记录。
|
delete_option()
|
$option
|
删除该项的所有记录。
|
get_option()
|
$option,
$default
|
$default (可选) 如果获取不到选项之,则返回该值。
|
update_option()
|
$option,
$new_value
|
$new_value 将要添加到option_value 字段的值。
|
add_site_option()
|
$option
$value
|
类似 add_option() ,但是在全站点中可用。也就是说此设置将添加在wp_options 数据表中,而不是 wp_XX_options数据表( XX 是站点 ID)。
|
delete_site_option()
|
$option
|
和delete_option() 一样,在多站点模式中使用。
|
get_site_option()
|
$option
$default
$use_cache
|
和 get_option() 一样,在多站点模式中使用。
|
update_site_option()
|
$option, $value
|
和 update_option() 一样,在多站点模式中使用。
|
创建设置选项的时候,可以把 option_value 字段留空,以便稍后添加数据。
使用WordPress Settings API
和 Options API 一样,我们也可以使用 Settings API 来存取 wp_options 数据表中得数据,Settings API 允许我们创建添加或更新 option 数据表数据的界面。这样我们就可以在仪表盘设置中修改网站设置了。
Settings API 和 Options API 功能基本类似,所以在这里就一一介绍了,只说明不同的几点。
-
设置: ( wp_options 数据表中的数据)
-
字段: ( 用来添加和编辑数据的界面 )
-
设置区域:字段的分组
Settings API 中的以下两个功能可以直接操作 wp_options数据表中的数据。
函数
|
参数
|
备注
|
register_setting()
|
$option_group, $option_name,
$sanitize_callback
|
$option_name参数就是 wp_options数据表中的option_name字段
|
unregister_setting()
|
$option_group, $option_name,
$sanitize_callback
|
从wp_options– 撤销设置选项,作用和register_setting() 相反。
|
上面的功能只是为选项创建了设置界面,并不会直接添加数据到wp_options 数据表中。
总结
wp_options 数据表不和 WordPress 数据中的其他任何数据关联,这个数据表里面存储的是网站的设置数据和一些临时数据,我们可以通过 WordPress 的 Options API 或 Settings API 来存取这个表中的数据。
转载:https://www.wpzhiku.com/understanding-working-wordpress-options-table/