register_sidebars( int $number = 1, array|string $args = array() )

Creates multiple sidebars.


Description Description

If you wanted to quickly create multiple sidebars for a theme or internally. This function will allow you to do so. If you don’t pass the ‘name’ and/or ‘id’ in $args, then they will be built for you.

See also See also


Top ↑

Parameters Parameters

$number

(int) (Optional) Number of sidebars to create.

Default value: 1

$args

(array|string) (Optional) Array or string of arguments for building a sidebar.

  • 'id'
    (string) The base string of the unique identifier for each sidebar. If provided, and multiple sidebars are being defined, the id will have "-2" appended, and so on. Default 'sidebar-' followed by the number the sidebar creation is currently at.
  • 'name'
    (string) The name or title for the sidebars displayed in the admin dashboard. If registering more than one sidebar, include '%d' in the string as a placeholder for the uniquely assigned number for each sidebar. Default 'Sidebar' for the first sidebar, otherwise 'Sidebar %d'.

Default value: array()


Top ↑

Source Source

File: wp-includes/widgets.php

function register_sidebars( $number = 1, $args = array() ) {
	global $wp_registered_sidebars;
	$number = (int) $number;

	if ( is_string( $args ) ) {
		parse_str( $args, $args );
	}

	for ( $i = 1; $i <= $number; $i++ ) {
		$_args = $args;

		if ( $number > 1 ) {
			if ( isset( $args['name'] ) ) {
				$_args['name'] = sprintf( $args['name'], $i );
			} else {
				/* translators: %d: Sidebar number. */
				$_args['name'] = sprintf( __( 'Sidebar %d' ), $i );
			}
		} else {
			$_args['name'] = isset( $args['name'] ) ? $args['name'] : __( 'Sidebar' );
		}

		// Custom specified ID's are suffixed if they exist already.
		// Automatically generated sidebar names need to be suffixed regardless starting at -0
		if ( isset( $args['id'] ) ) {
			$_args['id'] = $args['id'];
			$n           = 2; // Start at -2 for conflicting custom ID's
			while ( is_registered_sidebar( $_args['id'] ) ) {
				$_args['id'] = $args['id'] . '-' . $n++;
			}
		} else {
			$n = count( $wp_registered_sidebars );
			do {
				$_args['id'] = 'sidebar-' . ++$n;
			} while ( is_registered_sidebar( $_args['id'] ) );
		}
		register_sidebar( $_args );
	}
}

Top ↑

Changelog Changelog

Changelog
Version Description
2.2.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    Examples
    This will register 1 sidebar named Sidebar:

    register_sidebars();
    

    This will create 2 sidebars named “Foobar 1″ and “Foobar 2″:

    register_sidebars( 2, array( 'name' => 'Foobar %d' ) );
    

    This will create 2 sidebars with the title wrapped in <h1> and </h1>

    register_sidebars( 2, array(
    	'before_title' => '<h1>',
    	'after_title'  => '</h1>'
    ) );
    

You must log in before being able to contribute a note or feedback.