web-dev-qa-db-fra.com

Obtenir une barre latérale personnalisée sur la page de post-archive personnalisée

J'ai un type de message personnalisé appelé "bibliographies" et le fichier archive-bibliographies.php correspondant pour afficher une liste de messages. Sur cette page, je souhaite ajouter une barre latérale propre à cette page. J'ai donc décidé de créer une nouvelle barre latérale comme celle-ci:

// Register Bibliography Sidebar
function bibliography_sidebar() {
    register_sidebar( array(
        'name' => 'bibliography_sidebar',
        'id' => 'bibliography_sidebar',
        'description' => __( 'Widgets in this area will be shown on the bibliography sidebar.', 'theme-slug' ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget'  => '</li>',
        'before_title'  => '<h2 class="bibliography_sidebar">',
        'after_title'   => '</h2>',
    ) );
}
add_action( 'widgets_init', 'bibliography_sidebar' );

puis sur le fichier archive-bibliopgraphies.php, j’essaie d’appeler la barre latérale de la manière suivante:

get_sidebar('bibliography_sidebar');

Je vois la nouvelle barre latérale du côté administrateur et je peux y ajouter des widgets, mais tout ce que je reçois au début est la barre latérale principale, pas la barre latérale "bibliography_sidebar".

Des idées de ce qui me manque ici?

4
Guillermo Carone

get_sidebar($name) chargera un template sidebar-{$name}.php. Si sidebar-{$name}.php n'existe pas, alors il sera replacé pour charger sidebar.php.

pour avoir votre barre latérale spécifique, vous pouvez créer un fichier sidebar-bibliography_sidebar.php dans votre thème avec ce code:

<?php

if ( is_active_sidebar( 'bibliography_sidebar' ) ) {
    dynamic_sidebar( 'bibliography_sidebar' );
}
2
mmm