描述
这是设置API的一部分。使用此函数可定义管理页面的新设置栏。使用do_settings_sections()显示管理页面回调函数中的设置栏。使用add_settings_field()将设置字段添加到设置栏中。
$callback参数应该是一个函数的名称,该函数可以在实际字段之前回显要在设置栏顶部显示的任何内容。如果你想,它可以什么也不输出。
参数
- $id
-
(string)(必填) 设置栏的slug标识名称。用于标签的'id'属性。
- $title
-
(string)(必填) 设置栏的格式化标题。如本节的标题所示。
- $callback
-
(callable)(必填) 函数,用于回显设置栏顶部(标题和字段之间)的任何内容。
- $page
-
(string)(必填) 要在其上显示设置栏的设置页的slug名称。内置页面包括'general'、'reading'、'writing'、'discussion'、'media'等。使用add_options_page()创建自己的页面。
更多信息
回调函数接收一个可选参数,它是一个包含三个元素的数组。例子:
add_settings_section( 'eg_setting_section', 'Example settings section in reading', 'eg_setting_section_callback_function', 'reading' ); function eg_setting_section_callback_function( $arg ) { // echo section intro text here echo '<p>id: ' . $arg['id'] . '</p>'; // id: eg_setting_section echo '<p>title: ' . $arg['title'] . '</p>'; // title: Example settings section in reading echo '<p>callback: ' . $arg['callback'] . '</p>'; // callback: eg_setting_section_callback_function }
源码
更新日志
版本 | 描述 |
---|---|
2.7.0 | 开始引入 |
使用示例
$page
参数的描述可能会产生误导。它可以被理解为需要是通过add_submenu_page()
或其包装器(例如add_theme_page()
或者add_plugins_page()
)创建的管理页面的slug名称。相反,它只需要是由add_settings_field()
和do_settings_sections()
使用的slug格式名称。示例用法
回调函数接收一个可选参数,这是一个包含三个元素的数组。add_settings_section( 'eg_setting_section', __( 'Example settings section in reading', 'textdomain' ), 'wpdocs_setting_section_callback_function', 'reading' ); /** * Settings section display callback. * * @param array $args Display arguments. */ function wpdocs_setting_section_callback_function( $args ) { // echo section intro text here echo '<p>id: ' . esc_html( $args['id'] ) . '</p>'; // id: eg_setting_section echo '<p>title: ' . apply_filters( 'the_title', $args['title'] ) . '</p>'; // title: Example settings section in reading echo '<p>callback: ' . esc_html( $args['callback'] ) . '</p>'; // callback: eg_setting_section_callback_function }
带有php类的示例add_settings_section
class custom_setting { function __construct() { /** * register wp_setting_init to the admin_init action hook */ add_action('admin_init', array($this,'wp_setting_init')); } function wp_setting_init() { // register a new setting for "reading" page register_setting('reading', 'page_limit'); // register a new section in the "reading" page add_settings_section( 'wp_custom_setting_section', 'WP Custom Setting Section', array($this,'wp_custom_setting_section_cb'), 'reading' ); } /** * callback functions */ // section content cb function wp_custom_setting_section_cb() { esc_html_e('Page limit is 10','text-domain'); } } new custom_setting();
您可以将
callback
和title
留空以简化流程。