register_setting函数是WordPress提供的用于注册设置选项的函数,其用法如下:

register_setting(
string $option_group, // 设置项的分组名称
string $option_name, // 设置项的名称
array $args = array() // 设置项的附加参数
);

- $option_group:设置项的分组名称。设置项可以按照不同的分组进行分类,方便管理和组织。通常情况下,可以使用与设置页面对应的菜单页面的slug值作为分组名称。例如,如果设置页面对应的菜单页面slug是"my-plugin-settings",则可以将其作为$option_group值。
- $option_name:设置项的名称。设置项是以键值对的形式保存在数据库中的,$option_name即为键的名称。
- $args:设置项的附加参数,以数组形式提供。可用参数如下:
- 'type':设置项的类型,默认为'string'。可以是'string', 'boolean','integer','number'等。
- 'description':设置项的描述。用于在设置页面中显示有关设置项的说明文本。
- 'sanitize_callback':设置项值经过保存前的回调函数。通常情况下,我们需要对设置项的值进行一些验证或处理操作,在此函数中进行处理。
- 'show_in_rest':是否在WordPress REST API中可见,默认为false。如果设置为true,可以在通过REST API获取或更新设置项。

使用register_setting函数后,WordPress会自动为你生成对应的设置选项,包括在设置页面中显示、保存到数据库以及通过WordPress REST API获取和更新等操作。你可以在设置页面中使用settings_fields和do_settings_sections等函数来输出并对设置选项进行管理。

示例代码如下:

function my_plugin_settings_init() {
// 注册设置选项
register_setting( 'my-plugin-settings', 'my_plugin_option', array(
'type' => 'string',
'description' => 'My Plugin Option',
'sanitize_callback' => 'sanitize_text_field',
'show_in_rest' => true,
) );
}
add_action( 'admin_init', 'my_plugin_settings_init' );

在上面的代码中,我们注册了一个名为'my_plugin_option'的设置选项,它属于'my-plugin-settings'分组,类型为字符串,有一个描述信息"My Plugin Option",并对设置项的值进行了处理和验证,同时可以通过REST API获取和更新。