要在WordPress插件中创建设置页面并使用settings_fields()
和do_settings_sections()
函数,你需要按照以下步骤操作:
-
添加设置链接到插件列表:
在插件的主文件中添加一个链接到设置页面。 -
注册设置:
使用register_setting()
函数注册你的设置组。 -
添加设置部分:
使用add_settings_section()
函数添加设置部分。 -
添加设置字段:
使用add_settings_field()
函数添加设置字段。 -
创建设置页面:
创建一个函数来输出设置表单,并使用settings_fields()
,do_settings_sections()
函数。
下面是一个示例代码,展示如何实现上述步骤:
<?php
// 1. 添加设置链接到插件列表
function my_plugin_settings_link($links) {
$settings_link = '<a href="options-general.php?page=my_plugin_settings">Settings</a>';
array_push($links, $settings_link);
return $links;
}
$plugin_name = plugin_basename(__FILE__);
add_filter("plugin_action_links_$plugin_name", 'my_plugin_settings_link');
// 2. 注册设置
function my_plugin_register_settings() {
register_setting('my_plugin_settings_group', 'my_plugin_option_name');
}
add_action('admin_init', 'my_plugin_register_settings');
// 3. 添加设置部分
function my_plugin_settings_section() {
add_settings_section(
'my_plugin_settings_section',
'My Plugin Settings',
'my_plugin_settings_section_callback',
'my_plugin_settings'
);
}
add_action('admin_init', 'my_plugin_settings_section');
// 设置部分回调函数
function my_plugin_settings_section_callback() {
echo '<p>Here you can configure the settings for My Plugin.</p>';
}
// 4. 添加设置字段
function my_plugin_settings_fields() {
add_settings_field(
'my_plugin_setting_field',
'Setting Field',
'my_plugin_setting_field_callback',
'my_plugin_settings',
'my_plugin_settings_section'
);
}
add_action('admin_init', 'my_plugin_settings_fields');
// 设置字段回调函数
function my_plugin_setting_field_callback() {
$option = get_option('my_plugin_option_name');
echo '<input type="text" id="my_plugin_option_name" name="my_plugin_option_name" value="' . esc_attr($option) . '" />';
}
// 5. 创建设置页面
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="options.php">
<?php
settings_fields('my_plugin_settings_group');
do_settings_sections('my_plugin_settings');
submit_button();
?>
</form>
</div>
<?php
}
// 添加设置页面到菜单
function my_plugin_add_settings_page() {
add_options_page(
'My Plugin Settings',
'My Plugin',
'manage_options',
'my_plugin_settings',
'my_plugin_settings_page'
);
}
add_action('admin_menu', 'my_plugin_add_settings_page');
在这个示例中,我们创建了一个名为"My Plugin"的插件,并在WordPress的设置菜单中添加了一个设置页面。在这个设置页面中,我们添加了一个文本输入字段,用户可以在这里输入一些配置信息。settings_fields()
函数用于输出隐藏的表单字段,这些字段对于安全地保存设置是必需的。do_settings_sections()
函数用于输出之前定义的设置部分和字段。