欢迎光临
我们一直在努力

理解和利用 WordPress 中的选项表

建站超值云服务器,限时71元/月

本文目录
[隐藏]

  • 1访问wp_options表
  • 2wp_options表的结构
  • 3填充wp_options表
  • 4使用Options API
  • 5使用Settings API
  • 6总结

本文是《理解和利用 WordPress 中的数据》系列教程的第 8 部分,该系列共包含以下 9 个部分:

  1. 理解和利用 WordPress 中的数据(介绍)
  2. 理解和利用 WordPress 中的数据关系
  3. 理解和利用 WordPress 中的内容类型
  4. 理解和利用 WordPress 中的用户数据
  5. 理解和利用 WordPress 中的posts表
  6. 理解和利用 WordPress 中的元数据(Metadata)
  7. 理解和利用 WordPress 中的分类法(Taxonomies)和分类项(Terms)
  8. 理解和利用 WordPress 中的选项表
  9. 理解和利用 WordPress 中的数据 – 多站点

在本系列前面的文章中,我们了解了 WordPress 在数据库以及各表之间的关系。

在本部分,我将介绍不同于其他的一个表—— wp_options 表。如你在下图中看到的,这是唯一一个单独的表:

理解和利用 WordPress 中的选项表

选项表存储与其他表不同的数据:它不同存储关于你的网站内容的数据,而是存储关于站点本身的数据。数据通过 Options API 或 Settings API,写入到选项表中,两个API都有一系列的函数用来添加,更新,删除这个表中的数据。

你可以添加值到已存在的选项中,当你想要创建新的选项时,你也可以向它插入新的记录。

在本教程中,我会从多个角度来查看这个选项表以及如何与它交互:

  • 访问 wp_options
  • wp_options 表的结构
  • 填充(Populating) wp_options
  • Options API
  • Settings API

这里我只是给出这些API以及他们如何与选型表交互的概述-如果你想学习更多,阅读McFarlin的 关于Setting API的系列教程。

访问wp_options表

因为`wp_options`表存储关于整个站点启动和管理的数据,所以访问它是受限的。为能够修改这些设置和选项,用户需要拥有 manage_options 的权限,唯一默认拥有这种权限的用户角色是管理员账号(和多站点中的网络管理员账号)。

这意味着如果你需要添加其他的用户角色可以访问的选项,你需要赋予他们`manage_options`的权限,这会导致风险,所以只有你确保安全时再这样做。

wp_options表的结构

选项表有与其他3个元数据表相似的结构,它有以下4个字段:

  • option_ID
  • option_name
  • option_value
  • autoload – 表明在页面加载时这些选项是否自动加载-单站点默认是`yes`,多站点默认为`no`

每一条记录的`option_name`字段是唯一的值:如果你对一个选项添加超过一个的值,WordPress将会以一个数组存储在`option_value`字段中。一个好的例子是,有一个`active_plugins`选项,存储一个站点中所有激活的插件数组。

当添加,编辑,或者删除`wp_options`表中的数据时,你必须明确`option_name`字段,我会在本教程的下面部分展示。

填充wp_options表

wp_options 表从以下3个来源填充:

  • 默认的设置界面
  • 主题选项界面
  • 你通过插件添加时的设置和选项界面

WordPress有很多内置的选项-你可以在Option Reference 页面看到它们。但是你也可以创建你自己的。

为在主题和插件中创建新的选项,你需要使用Options API或者Setting API。我会在下面介绍更多细节。

使用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)。`$autoload`不被包括在内因为在多站点中站点选项不会自动加载而且不能重载。
delete_site_option() $option 与`delete_option()`相似但是工作在多站点的网络范围内
get_site_option() $option, $default , $use_cache get_option() 相似但是得到多站点网络范围的选项
update_site_option() $option, $value 与`update_option()`相同但是工作在多站点的网络范围内

注意当你通过Options API或者Settings API创建选项时,你可以创建`option_value`字段没有值的记录。这样允许站点管理员在以后的时间填写这个字段。

使用Settings API

与Options API一样,你也可以使用 Settings API 与`wp_options`表中的数据交互。Settings API使你创建设置,站点管理员使用这些设置可以用来添加,更新选项表中数据。-这创建了一个通向选项的用户接口。

Settings API有比Options API更多的内容,所以这里我不会涉及细节的内容,但是本质上它包含3个元素:

  • 设置(the setting)(`wp_options`表中的数据)
  • 字段(用来添加和编辑数据)
  • 设置段(the settings section),一组相关的字段。

以下是Settings API中两个直接与`wp_options`表交互的两个函数:

函数 参数 说明
register_setting() $option_group, $option_name, $sanitize_callback `option_name`参数指的是`wp_options`的`option_name`字段;其他的参数与Settings API中的其他函数交互。
unregister_setting() $option_group, $option_name, $sanitize_callback 取消(deregisters)`wp_options`表中的设置-通常用来失活插件和主题。

这些函数不会向`wp_options`表的选项添加值,但是它们可以创建设置,然后可以通过Settings API中其他的函数向设置添加值。

总结

在WordPress数据库中`wp_options`是唯一一个与其他任何表都没有关联的表。这是因为它只存储关于站点和网络的数据而不存储站点内容。为与这个表交互,你可以使用Options API或者Settings API中的函数。你还可以使用函数向多站点安装中添加网络范围的数据。

在本系列的最后部分,我将会介绍多站点,因为它会设计到其他的本系列教程尚未设计到的数据库表,并且可以为每一个核心表创建多个实例,每个实例对应一个站点。

原文出自:http://code.tutsplus.com/tutorials/understanding-and-working-with-the-wordpress-options-table–cms-21119

阅读该系列的其他文章: 上一篇:理解和利用 WordPress 中的分类法(Taxonomies)和分类项(Terms) 下一篇:理解和利用 WordPress 中的数据 – 多站点

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 理解和利用 WordPress 中的选项表
分享到: 更多 (0)