WordPress Version: 3.7
/**
* 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.
*
* @since 2.2.0
*
* @see register_sidebar() The second parameter is documented by register_sidebar() and is the same here.
* @uses parse_str() Converts a string to an array to be used in the rest of the function.
* @uses register_sidebar() Sends single sidebar information [name, id] to this
* function to handle building the sidebar.
*
* @param int $number Number of sidebars to create.
* @param string|array $args Builds Sidebar based off of 'name' and 'id' values.
*/
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);
}
}