Settings API(设置 API)于 WordPress 2.7 版本引入,允许对包含设置表单的管理页面进行半自动管理。它允许您定义设置页面、这些页面内的部分以及部分内的字段。

可以注册新的设置页面,并连同其内部的各部分和字段一起注册。也可以向现有的设置页面添加内容,通过在其内部注册新的设置部分或字段来实现。

组织字段的注册和验证仍然需要开发人员付出一些努力,但避免了底层选项管理的许多复杂调试工作。

使用 Settings API 时,表单 POST 到 wp-admin/options.php,该文件提供相当严格的权限检查。用户需要具备 manage_options 权限(在 Multisite 中必须是超级管理员)才能提交表单。

为什么要使用 Settings API?

开发人员 可以忽略此 API 并自行编写设置页面。这就引出了一个问题:这个 API 带来了什么好处?以下是对其部分好处的简要介绍。

视觉一致性

使用 API 生成界面元素可保证您的设置页面看起来与其他管理内容一致。您的界面将遵循相同的风格指南并显得协调,而且得益于 WordPress 设计团队的才华,它将看起来很棒!

健壮性(面向未来!)

由于 API 是 WordPress 核心的一部分,任何更新都会自动考虑您的插件设置页面。如果您不使用 Settings API 自行构建界面,WordPress 核心更新更有可能破坏您的自定义内容。此外,还有更广泛的受众在测试和维护该 API 代码,因此它往往更加稳定。

工作量更少!

当然,最直接的好处是 WordPress API 在幕后为您完成了大量工作。以下是 Settings API 除了应用美观的集成设计之外所做的一些工作的示例。

  • 处理表单提交 –让 WordPress 负责检索和存储您的 $_POST 提交内容。
  • 包含安全措施 –您免费获得额外的安全措施,如 nonce 等。
  • 数据清理 –您可以访问 WordPress 用于确保字符串安全使用的相同方法。

函数参考

设置注册/注销添加字段/部分
register_setting()
unregister_setting()
add_settings_section()
add_settings_field()
选项表单渲染错误
settings_fields()
do_settings_sections()
do_settings_fields()
add_settings_error()
get_settings_errors()
settings_errors()