A WordPress-centric search engine for devs and theme authors



register_sidebars ›

Since2.2.0
Deprecatedn/a
register_sidebars ( $number = 1, $args = array() )
Parameters: (2)
  • (int) $number Number of sidebars to create.
    Required: No
    Default: 1
  • (string|array) $args Builds Sidebar based off of 'name' and 'id' values.
    Required: No
    Default: array()
Uses:
See:
Defined at:
Codex:

Creates multiple sidebars.

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.

The default for the name is "Sidebar #", with '#' being replaced with the number the sidebar is currently when greater than one. If first sidebar, the name will be just "Sidebar". The default for id is "sidebar-" followed by the number the sidebar creation is currently at. If the id is provided, and multiple sidebars are being defined, the id will have "-2" appended, and so on.



Source

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 )
			$_args['name'] = isset($args['name']) ? sprintf($args['name'], $i) : 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 ( isset($wp_registered_sidebars[$_args['id']]) )
				$_args['id'] = $args['id'] . '-' . $n++;
		} else {
			$n = count($wp_registered_sidebars);
			do {
				$_args['id'] = 'sidebar-' . ++$n;
			} while ( isset($wp_registered_sidebars[$_args['id']]) );
		}
		register_sidebar($_args);
	}
}