Plusieurs sidebar dans un thème WordPress

Nous allons voir comment ajouter une ou plusieurs sidebar dans un thème WordPress, et faire en sorte qu’elles soient accessibles depuis l’interface WordPress pour pouvoir y ajouter dynamiquement des widgets.

1ère étape : déclaration des sidebars

La déclaration des slidebars supplémentaires se fait dans le fichier functions.php, présent dans le répertoire du thème (wp-content/themes/votre-theme/functions.php).

La fonction register_sidebar() permet de déclarer une sidebar.

Par défaut, (dans le déjà vieux thème Twentyten), le code suivant qui permet la déclaration des sidebars existantes est déjà présent :

  1. register_sidebar( array(
  2.         « name » => « Primary Widget Area »,
  3.         « id » => « primary-widget-area-id »,
  4.         « description » => « The primary widget area »,
  5.         « before_widget » => «  »,
  6.         « after_widget » => «  »,
  7.         « before_title » => «  »,
  8.         « after_title » => «  »
  9. ) );

Pour ajouter d’autres slidebars, il faut dupliquer la fonction register_sidebar() autant de fois qu’on le désire en modifiant les paramètres « name » et « id » afin qu’ils ne soient pas déjà utilisés.

Par exemple :

  1. register_sidebar( array(
  2.         « name » => « New sidebar »,
  3.         « id » => « new-sidebar-id »,
  4.         « description » => « My new slidebar »,
  5.         « before_widget » => «  »,
  6.         « after_widget » => «  »,
  7.         « before_title » => «  »,
  8.         « after_title » => «  »
  9. ) );

A ce stade, nous pouvons voir la nouvelle sidebar dans l’interface WordPress (menu Apparence > Widgets).

2nde étape : création du fichier pour la nouvelle sidebar

Afin de garder un code propre, nous allons créer un nouveau fichier dans le répertoire du thème. Dans mon exemple, je vais l’appeler sidebar-new.php (le fichier doit commencer par sidebar- puis le nom de votre choix).

On y colle le code suivant qui permet l’affichage des widgets que l’on a préalablement attribué dans l’admin WordPress :

  1. <div id=« newSidebar »>
  2.         <div class=« widget-area »>
  3.                 <?php if ( is_active_sidebar( « new-sidebar-id » ) ) : ?>
  4.                 <?php dynamic_sidebar( « new-sidebar-id » ); ?>
  5.                 <?php endif; ?>
  6.         </div><!– .widget-area –>
  7. </div><!– #newSidebar –>

3ème étape : afficher les slidebars dans le thème

Pour pouvoir afficher les slidebars supplémentaires déclarées, il suffit de coller ce bout de code (pour chaque slidebar) :

  1. <?php get_sidebar(« new »); ?>

Il faut veiller à remplacer le new par le nom du fichier choisi pour la sidebar (dans notre exemple : sidebar-new.php). Ce code peut être placer n’importe où, dans n’importe quel fichier du thème selon vos besoins.

Sources :

www.quickonlinetips.com : how to create multiple dynamic sidebars for wordpress widgets