How to add Multiple sidebars Modern-Clix from newbie..
-
I would like to use different sidebars for different pages of the site I’m building. I tried going through the online documentation to see what I am supposed to alter to achieve this. Here is the register_sidebar code from the widgets.php file:
/**
* 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 mutliple
* 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 = 4, $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);
}
}/**
* Builds the definition for a single sidebar and returns the ID.
*
* The $args parameter takes either a string or an array with ‘name’ and ‘id’
* contained in either usage. It will be noted that the values will be applied
* to all sidebars, so if creating more than one, it will be advised to allow
* for WordPress to create the defaults for you.
*
* Example for string would be'name=whatever;id=whatever1'
and for
* the array it would bearray(
.
* 'name' => 'whatever',
* 'id' => 'whatever1')
*
* name – The name of the sidebar, which presumably the title which will be
* displayed.
* id – The unique identifier by which the sidebar will be called by.
* before_widget – The content that will prepended to the widgets when they are
* displayed.
* after_widget – The content that will be appended to the widgets when they are
* displayed.
* before_title – The content that will be prepended to the title when displayed.
* after_title – the content that will be appended to the title when displayed.
*
* Content is assumed to be HTML and should be formatted as such, but
* doesn’t have to be.
*
* @since 2.2.0
* @uses $wp_registered_sidebars Stores the new sidebar in this array by sidebar ID.
*
* @param string|array $args Builds Sidebar based off of ‘name’ and ‘id’ values
* @return string The sidebar id that was added.
*/
function register_sidebar($args = array()) {
global $wp_registered_sidebars;$i = count($wp_registered_sidebars) + 1;
$defaults = array(
‘name’ => sprintf(__(‘Sidebar %d’), $i ),
‘id’ => “sidebar-$i”,
‘description’ => ”,
‘before_widget’ => ‘<li id=”%1$s” class=”widget %2$s”>’,
‘after_widget’ => “\n”,
‘before_title’ => ‘<h2 class=”widgettitle”>’,
‘after_title’ => “</h2>\n”,
);$sidebar = wp_parse_args( $args, $defaults );
$wp_registered_sidebars[$sidebar[‘id’]] = $sidebar;
add_theme_support(‘widgets’);
do_action( ‘register_sidebar’, $sidebar );
return $sidebar[‘id’];
}
- The topic ‘How to add Multiple sidebars Modern-Clix from newbie..’ is closed to new replies.