## 添加设置 您必须使用register_setting()定义新设置,它将在{$ wpdb-> prefix} _options表中创建一个条目。 您可以使用add_settings_section()在现有页面上添加新的部分。 您可以使用add_settings_field()将新字段添加到现有部分。 >[info] 警报: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'); ```