Dans ce chapitre nous allons voir comment déclarer de nouvelles "sidebar" dans WordPress. Ces sidebars accueilleront ensuite différents widgets qui pourront être sélectionnés par l'administrateur.

function montheme_register_widget () {
    register_sidebar([
        'id' => 'homepage',
        'name' => 'Sidebar Accueil',
        'before_widget' => '<div class="p-4 %2$s" id="%1$s">',
        'after_widget' => '</div>',
        'before_title' => '<h4 class="font-italic">',
        'after_title' => '</h4>'
    ]);
}
add_action('widgets_init', 'montheme_register_widget'); 

Ensuite il est possible d'afficher notre sidebar dans notre thème

<aside class="col-md-4 blog-sidebar">
    <?= get_sidebar('homepage'); ?>
</aside>

Cette fonction se contentera d'appeler un fichier sidebar-homepage.php qu'il va falloir créer et qui se chargera de l'affichage du contenu de la sidebar.

<?php if(!dynamic_sidebar('homepage')): ?>

    <div class="p-4">
        <h4 class="font-italic">Rechercher</h4>
        <?= get_search_form() ?>
      </div>

    <div class="p-4">
        <h4 class="font-italic">Archives</h4>
        <ol class="list-unstyled mb-0">
            <?php wp_get_archives(['type' => 'monthly']) ?>
        </ol>
      </div>
<?php endif ?>

Vous pouvez à l'intérieur mettre des widgets par défaut afin de prévoir le cas où l'administrateur n'a pas encore configuré les choses.