register_sidebars

Definition:
function register_sidebars($number = 1, $args = array() {}

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.

Parameters

  • int $number: Number of sidebars to create.
  • string|array $args: Builds Sidebar based off of ‘name’ and ‘id’ values.

Source code

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

	}

}

2681

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: