WordPress函数add_settings_field()向设置页面的某个部分添加新字段
在 WordPress CMS内容管理系统中,add_settings_field()函数是 WordPress 中内置函数。WordPress PHP 函数add_settings_field()向设置页面的某个部分添加新字段.
WordPress 中的该add_settings_field
函数用于向设置页面添加新字段。该函数是设置 API 的一部分,它提供了一种在 WordPress 管理区域中创建和管理设置页面和字段的标准化方法。通过使用add_settings_field
,开发人员可以定义在设置页面上显示的输入字段,允许用户输入和保存配置选项。此功能将特定字段与设置部分连接起来,确保该字段在设置页面上的正确上下文中显示。
该函数通过将新字段与负责呈现字段 HTML 的回调函数相链接,方便创建自定义设置界面。此外,它还通过将设置字段与设置页面上定义的特定部分关联,帮助组织设置字段。add_settings_field
作为构建自定义设置页面的关键组件,可以添加各种输入字段,以结构化的方式收集用户定义的设置。
推荐:[最新版]WordPress SEO插件Rank Math Pro
add_settings_field()函数基本语法
描述
使用 add_settings_field 向 WordPress 添加自定义设置字段
用法
add_settings_field(
'myprefix_setting-id',
'This is the setting title',
'myprefix_setting_callback_function',
'general',
'myprefix_settings-section-name',
array( 'label_for' => 'myprefix_setting-id' )
);
- $id (string, 必需):用于标识字段的 Slug 名称。它用于标签的“id”属性。
- $title (string,必需):字段的格式化标题。输出期间显示为字段的标签。
- $callback (可调用,必需):用所需表单输入填充字段的函数。该函数应回显其输出。
- $page (字符串,必需):显示部分(常规、阅读、写作等)的设置页面的 slug 名称。
- $section (string,可选):设置页面中显示框的部分的 slug 名称。默认值为“default”。
- $args(数组,可选):传递给回调函数的额外参数。例如,
label_for
当提供时,设置标题将包装在<label>
元素中。它的 for 属性使用此值填充。是在输出字段时class
要添加到元素的 CSS 类。<tr>
推荐:Swift Performance插件教程WordPress缓存性能优化插件
add_settings_field()函数
在 WordPress 中,add_settings_field()函数将您必须使用register_setting()注册此函数使用的任何选项,否则它们将不会被自动保存和更新。回调函数需要输出适当的 html 输入并用旧值填充它,保存将在后台完成。html 输入字段的name属性必须与register_setting()中的 $option_name 匹配,并且可以使用get_option()填充值。此函数还可用于向默认 WP 设置页面(如媒体或常规)添加额外的设置字段。您可以将它们添加到现有部分,或使用add_settings_section() 创建新部分以添加字段。(源文件可参考这里)
function add_settings_field( $id, $title, $callback, $page, $section = 'default', $args = array() ) {
global $wp_settings_fields;
if ( 'misc' === $page ) {
_deprecated_argument(
__FUNCTION__,
'3.0.0',
sprintf(
/* translators: %s: misc */
__( 'The "%s" options group has been removed. Use another settings group.' ),
'misc'
)
);
$page = 'general';
}
if ( 'privacy' === $page ) {
_deprecated_argument(
__FUNCTION__,
'3.5.0',
sprintf(
/* translators: %s: privacy */
__( 'The "%s" options group has been removed. Use another settings group.' ),
'privacy'
)
);
$page = 'reading';
}
$wp_settings_fields[ $page ][ $section ][ $id ] = array(
'id' => $id,
'title' => $title,
'callback' => $callback,
'args' => $args,
);
}
推荐:Max Mega Menu插件教程WordPress添加超级菜单
如何使用add_settings_field()
添加文本输入字段在此示例中,在“常规”设置页面中添加了一个文本输入字段。使用函数从 WordPress 数据库中检索此字段的值get_option()。
function text_input_callback($args) {
$value = get_option($args['id']);
echo '<input type="text" id="' . $args['id'] . '" name="' . $args['id'] . '" value="' . $value . '">';
}
add_settings_field(
'myprefix_text_input',
'Enter Text Here',
'text_input_callback',
'general'
);
添加复选框字段在此示例中,在“常规”设置页面中添加了一个复选框。如果选中该复选框,则值为“1”。如果未选中,则值为“0”。
function checkbox_callback($args) {
$value = get_option($args['id']);
$checked = $value ? 'checked' : '';
echo '<input type="checkbox" id="' . $args['id'] . '" name="' . $args['id'] . '" value="1" ' . $checked . '>';
}
add_settings_field(
'myprefix_checkbox',
'Check Here',
'checkbox_callback',
'general'
);
在阅读设置页面添加复选框字段
function myplugin_register_checkbox() {
register_setting('reading', 'myplugin_checkbox_field');
add_settings_field(
'myplugin_checkbox_field',
'My Plugin Checkbox',
'myplugin_checkbox_field_callback',
'reading'
);
}
add_action('admin_init', 'myplugin_register_checkbox');
function myplugin_checkbox_field_callback() {
$checked = get_option('myplugin_checkbox_field', false);
echo '<input type="checkbox" id="myplugin_checkbox_field" name="myplugin_checkbox_field" value="1" ' . checked(1, $checked, false) . ' />';
}
推荐:AliPay WordPress WooCommerce免费支付宝网关接口插件教程