在WordPress插件开发中,settings_fields()
和 do_settings_sections()
函数是用于创建和管理设置页面的一部分。以下是如何使用这些函数来创建一个简单的设置页面的步骤:
-
注册设置:首先,你需要使用
register_setting()
函数来注册你的设置组。这会告诉WordPress你的设置需要被保存。 -
添加设置部分:使用
add_settings_section()
函数来添加一个设置部分,这个部分可以包含多个设置字段。 -
添加设置字段:使用
add_settings_field()
函数来添加具体的设置字段。 -
创建设置页面:使用
add_options_page()
或其他相关函数来添加一个菜单项,然后创建一个回调函数来输出设置表单。
以下是具体实现的代码示例:
// 1. 注册设置
function myplugin_register_settings() {
// 注册一个设置组,第一个参数是组名,第二个参数是选项名,第三个参数是验证回调函数
register_setting('myplugin_options_group', 'myplugin_option_name', 'myplugin_validate_options');
}
add_action('admin_init', 'myplugin_register_settings');
// 2. 添加设置部分
function myplugin_add_settings_section() {
// 添加设置部分,第一个参数是唯一标识符,第二个参数是标题,第三个参数是回调函数,第四个参数是页面
add_settings_section('myplugin_settings_section', 'My Plugin Settings', 'myplugin_section_callback', 'myplugin');
}
add_action('admin_init', 'myplugin_add_settings_section');
// 3. 添加设置字段
function myplugin_add_settings_field() {
// 添加设置字段,第一个参数是唯一标识符,第二个参数是标题,第三个参数是回调函数,第四个参数是页面,第五个参数是部分
add_settings_field('myplugin_setting_field', 'Setting Field', 'myplugin_setting_field_callback', 'myplugin', 'myplugin_settings_section');
}
add_action('admin_init', 'myplugin_add_settings_field');
// 设置部分回调函数
function myplugin_section_callback() {
echo '<p>Enter your settings below:</p>';
}
// 设置字段回调函数
function myplugin_setting_field_callback() {
// 获取选项值
$options = get_option('myplugin_option_name');
// 输出字段HTML
echo '<input type="text" id="myplugin_setting_field" name="myplugin_option_name[myplugin_setting_field]" value="' . esc_attr($options['myplugin_setting_field']) . '" />';
}
// 验证回调函数
function myplugin_validate_options($input) {
// 验证输入,然后返回
$valid = array();
if (isset($input['myplugin_setting_field'])) {
$valid['myplugin_setting_field'] = sanitize_text_field($input['myplugin_setting_field']);
}
return $valid;
}
// 4. 创建设置页面
function myplugin_add_options_page() {
// 添加设置页面,第一个参数是标题,第二个参数是菜单标题,第三个参数是权限,第四个参数是页面标识符,第五个参数是回调函数
add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'myplugin', 'myplugin_options_page');
}
add_action('admin_menu', 'myplugin_add_options_page');
// 设置页面回调函数
function myplugin_options_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="options.php">
<?php
// 输出设置字段和部分
settings_fields('myplugin_options_group');
do_settings_sections('myplugin');
submit_button();
?>
</form>
</div>
<?php
}
这段代码创建了一个名为"My Plugin"的设置页面,在WordPress管理菜单的"Settings"下。页面中有一个文本输入字段,用户可以在其中输入设置。当用户提交表单时,myplugin_validate_options()
函数会验证并保存输入的值。