WordPress : Les widgets ne s’affichent pas dans les barres latérales
J’ai enregistré deux barres latérales dans mon thème en utilisant la fonction ci-dessous, mais aucun des widgets n’apparaît dans les barres latérales même si je peux les gérer dans le tableau de bord :
// register sidebars
add_action( 'widgets_init', 'my_register_sidebars' );
function my_register_sidebars() {
register_sidebar(
array(
'id' => 'sidebar-left',
'name' => __( 'sidebar-left' ),
'description' => __( 'A short description of the sidebar.' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="sidebar-title">',
'after_title' => '</h2>'
)
);
register_sidebar(
array(
'id' => 'sidebar-right',
'name' => __( 'sidebar-right' ),
'description' => __( 'A short description of the sidebar.' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2 class="sidebar-title">',
'after_title' => '</h2>'
)
);
}
et pour appeler le fichier de modèle, c’est comme ça
<div id="sidebar-left" >
<?php if ( is_active_sidebar( 'left' ) ) : ?>
<?php dynamic_sidebar( 'left' ); ?>
<?php else : ?>
<p> here should be a left sidebar</p>
<?php endif; ?>
</div>
Le paragraphe s’affiche, mais pas les widgets. Aucune suggestion?
Solution n°1 trouvée
Vous avez enregistré vos barres latérales avec le id
s de sidebar-left
et sidebar-right
mais vous essayez de les afficher en utilisant uniquement left
et right
. Vous devez utiliser le bon id
s. C’est-à-dire:
dynamic_sidebar( 'sidebar-left' );
Vous en avez besoin id
avec dynamic_sidebar()
etis_active_sidebar()
if ( is_active_sidebar( 'sidebar-left' ) ) {
dynamic_sidebar( 'sidebar-left' );
} else { ?>
<p> here should be a left sidebar</p><?php
}
0 commentaire