add_settings_section() wordpress function and usage This text is not used because the data attribute has a value

add_settings_section() wordpress function and usage

Home / WordPress / WordPress Wiki / add_settings_section() wordpress function and usage

add_settings_section( string $id, string $title, callable $callback, string $page )
Add a new section to a settings page.

Description

Part of the Settings API. Use this to define new settings sections for an admin page. Show settings sections in your admin page callback function with do_settings_sections(). Add settings fields to your section with add_settings_field().

The $callback argument should be the name of a function that echoes out any content you want to show at the top of the settings section before the actual fields. It can output nothing if you want.

Parameters

$id

(string) (Required) Slug-name to identify the section. Used in the ‘id’ attribute of tags.

$title

(string) (Required) Formatted title of the section. Shown as the heading for the section.

$callback

(callable) (Required) Function that echos out any content at the top of the section (between heading and fields).

$page

(string) (Required) The slug-name of the settings page on which to show the section. Built-in pages include ‘general’, ‘reading’, ‘writing’, ‘discussion’, ‘media’, etc. Create your own using add_options_page();

More Information

The callback function receives a single optional argument, which is an array with three elements. Example:

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
}

Sample Usage

Example usage
The callback function receives a single optional argument, which is an array with three elements.

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
}

Description of $page parameter may be misleading. It can be interpreted as if needs to be the slug name of the admin page created through add_submenu_page() or one of its wrappers (such as add_theme_page() or add_plugins_page()). Instead, it only needs to be a slug-formatted name used by add_settings_field() and do_settings_sections().

Example add_settings_section with php class

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();

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments