添加设置
您必须使用 register_setting()
定义新设置,它将在 {$ wpdb-> prefix} _options
表中创建一个条目。
您可以使用 add_settings_section()
在现有页面上添加新的部分。
您可以使用 add_settings_field()
将新字段添加到现有部分。
警报:
register_setting()
以及所提到的add_settings _ *()
函数都应该添加到admin_init动作钩子中。
添加设置
register_setting(
string $option_group,
string $option_name,
callable $sanitize_callback = ''
);
关于 register_setting()
的函数参考有关所使用参数的全面说明。
添加部件
add_settings_section(
string $id,
string $title,
callable $callback,
string $page
);
部分是您在具有共享标题的WordPress设置页面上看到的设置组。 在插件中,您可以向现有设置页面添加新的部分,而不是创建一个全新的页面。 这使您的插件更容易维护,并创建更少的新页面供用户学习。
有关使用的参数的完整说明,请参考关于 add_settings_section()
的函数参考。
添加字段
add_settings_field(
string $id,
string $title,
callable $callback,
string $page,
string $section = 'default',
array $args = []
);
有关使用的参数的完整说明,请参考关于 add_settings_field()
的函数参考。
<?php
function wporg_settings_init()
{
// register a new setting for "reading" page
register_setting('reading', 'wporg_setting_name');
// register a new section in the "reading" page
add_settings_section(
'wporg_settings_section',
'WPOrg Settings Section',
'wporg_settings_section_cb',
'reading'
);
// register a new field in the "wporg_settings_section" section, inside the "reading" page
add_settings_field(
'wporg_settings_field',
'WPOrg Setting',
'wporg_settings_field_cb',
'reading',
'wporg_settings_section'
);
}
/**
* register wporg_settings_init to the admin_init action hook
*/
add_action('admin_init', 'wporg_settings_init');
/**
* callback functions
*/
// section content cb
function wporg_settings_section_cb()
{
echo '<p>WPOrg Section Introduction.</p>';
}
// field content cb
function wporg_settings_field_cb()
{
// get the value of the setting we've registered with register_setting()
$setting = get_option('wporg_setting_name');
// output the field
?>
<input type="text" name="wporg_setting_name" value="<?= isset($setting) ? esc_attr($setting) : ''; ?>">
<?php
}
获取设置
get_option(
string $option,
mixed $default = false
);
通过 get_option()
函数完成设置。该函数接受两个参数:该选项的名称和该选项的可选默认值。
// get the value of the setting we've registered with register_setting()
$setting = get_option('wporg_setting_name');