在WordPress插件开发中使用Settings API创建设置页面通常涉及以下步骤:
-
注册设置:使用
register_setting()
函数注册一个设置组,并为该设置组提供一个回调函数以验证和消毒(sanitize)输入的数据。 -
添加设置部分:使用
add_settings_section()
函数添加一个设置部分,并定义一个回调函数来输出该部分的描述。 -
添加设置字段:使用
add_settings_field()
函数为每个设置字段添加输入表单元素,并定义一个回调函数来输出该字段的HTML。 -
创建设置页面:创建一个函数来输出设置页面的HTML,并使用
do_settings_sections()
和submit_button()
等函数来输出设置部分和提交按钮。
以下是一个简单的示例,展示了如何使用Settings API创建一个设置页面:
<?php
// 在插件的主文件中注册设置和菜单
function myplugin_settings_init() {
// 注册设置
register_setting('myplugin_options_group', 'myplugin_option_name', 'myplugin_sanitize_options');
// 添加设置部分
add_settings_section(
'myplugin_settings_section',
'My Plugin Settings',
'myplugin_settings_section_callback',
'myplugin'
);
// 添加设置字段
add_settings_field(
'myplugin_text_field',
'Text Field',
'myplugin_text_field_callback',
'myplugin',
'myplugin_settings_section'
);
}
add_action('admin_init', 'myplugin_settings_init');
// 设置部分回调函数
function myplugin_settings_section_callback() {
echo '<p>Enter your settings below:</p>';
}
// 设置字段回调函数
function myplugin_text_field_callback() {
$options = get_option('myplugin_option_name');
?>
<input type="text" id="myplugin_text_field" name="myplugin_option_name[myplugin_text_field]" value="<?php echo isset($options['myplugin_text_field']) ? esc_attr($options['myplugin_text_field']) : ''; ?>" />
<?php
}
// 消毒设置输入
function myplugin_sanitize_options($input) {
$sanitized = array();
if (isset($input['myplugin_text_field'])) {
$sanitized['myplugin_text_field'] = sanitize_text_field($input['myplugin_text_field']);
}
return $sanitized;
}
// 添加设置菜单到WordPress管理菜单
function myplugin_add_settings_page() {
add_options_page(
'My Plugin Settings',
'My Plugin',
'manage_options',
'myplugin',
'myplugin_options_page'
);
}
add_action('admin_menu', 'myplugin_add_settings_page');
// 输出设置页面
function myplugin_options_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form action="options.php" method="post">
<?php
settings_fields('myplugin_options_group');
do_settings_sections('myplugin');
submit_button();
?>
</form>
</div>
<?php
}
在这个示例中,我们创建了一个名为"My Plugin"的设置页面,它包含一个文本字段。这个字段被注册为设置,并且在设置部分中显示。我们还定义了一个消毒函数来确保输入数据的安全。
确保将此代码放入插件的主文件中,或者在一个被插件主文件包含的文件中。在激活插件后,你可以在WordPress管理后台的"Settings"菜单下找到" My Plugin"设置页面。