La plupart des thêmes WordPress utilisent une sidebar widgetisable, voire, de temps à autre deux ou trois. Il peut toutefois être utile si vous décidez de créer votre propre thême de personnaliser un peu plus ces éléments. L’on peut par exemple imaginer avoir une sidebar différente pour le template home.php, single.php, search.php, etc. La multiplication des sidebar est relativement simple à mettre en place. Encore faut-il le faire proprement, afin de pouvoir notamment les différencier dans l’administration des widgets de WordPress.

Comment faire :

Tout d’abord, créez un fichier par sidebar, sur le modèle du fichier sidebar.php. Nommez ces nouveaux fichiers “sidebar-lenomdemasidebar.php”. Voici à quoi pourrait ressembler le fichier sidebar-lenomdemasidebar.php :

<div id="lenomdemasidebar"><!-- vous pourrez ainsi avoir une css spécifique pour cette sidebar -->
	<ul>
		<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('lenomdemasidebar')) : /* c'est ici que vous appelez la sidebar désirée */ ?>
		<?php endif;?>
	</ul>
</div>

Pour inclure une (ou plusieurs) sidebar dans un fichier de template (single.php par exemple), utilisez la fonction suivante :

<?php get_sidebar(lenomdemasidebar); ?>

Afin de faire fonctionner correctement vos sidebar, il ne vous reste plus qu’à modifier le fichier “functions.php” de votre thême. Vous pourrez également ainsi contrôler l’HTML encadrant les widgets et leur titre, et “nommer” comme vous le désirez (de manière explicite, c’est tellement plus agréable) chacune de vos sidebar.

<?php
/**
 * @package WordPress
 * @subpackage Glob's Theme
 */
 
if ( function_exists('register_sidebar') ) {
	$sidebar1 = array(
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => '</li>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',        
		'name'=>'lenomdemasidebar', 
/* C'est ici que se défini le nom de votre sidebar. 
Il sera utilisé lors de l'appel de la fonction get_sidebar(lenomdemasidebar) dans votre template. 
C'est également le nom que vous verrez dans l'admin de Wordpress */ 	
	);
	$sidebar2 = array(
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => '</li>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',        
		'name'=>'Une autre sidebar',	
	);
	$sidebar3 = array(
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget' => '</li>',
		'before_title' => '<h2>',
		'after_title' => '</h2>',        
		'name'=>'Et encore une',	
	);
	register_sidebar($sidebar1);
	register_sidebar($sidebar2);
	register_sidebar($sidebar3);
}