当前浏览:首页 / WordPress函数 / add_settings_section()

add_settings_section( string $id, string $title, callable $callback, string $page )

将新的设置栏添加到设置页面

addmore...

section

settings 设置more...


描述

这是设置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开始引入

使用示例

  • 示例1

    $page参数的描述可能会产生误导。它可以被理解为需要是通过add_submenu_page()或其包装器(例如add_theme_page()或者add_plugins_page())创建的管理页面的slug名称。相反,它只需要是由add_settings_field()do_settings_sections()使用的slug格式名称。

  • 示例2

    示例用法
    回调函数接收一个可选参数,这是一个包含三个元素的数组。

    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
    }
  • 示例3

    带有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();
  • 示例4

    您可以将callbacktitle留空以简化流程。