J'ai enregistré une barre latérale avec le code suivant:
function reg_l_sid(){
$args = array(
'name' => __( 'left-sidebar', 'Tutorial-Blog' ),
'id' => 'left-sidebar',
'description' => '',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>' );
register_sidebar( $args );
}
add_action ('widgets_init','reg_l_sid');
et la barre latérale est enregistrée, alors j'ai ajouté quelques widgets. alors j'ai essayé d'utiliser le is_active_sidebar
conditionnel pour afficher un message s'il n'y a pas de widgets comme celui-ci:
if ( is_active_sidebar( 'left-sidebar' ) ) {
dynamic_sidebar( 'left-sidebar' );
} else {
echo 'Please add widgets';
}
mais il continue d'afficher le message "S'il vous plaît ajouter des widgets", alors que j'ai mentionné qu'il y avait des widgets ont été ajoutés. Alors, où est le problème?
Mettre à jour
Pour être mentionné que cela fonctionne très bien sans le conditionnel.
S'il vous plaît essayer celui-ci, car sans identifiant nous je ne pense pas que cela fonctionnera
function reg_l_sid()
{
$args = array( 'id' => 'sidebar-footer-6','name'=> 'Left-sidebar');
register_sidebar($args);
}
add_action('widgets_init', 'reg_l_sid');
et à l'intérieur du gabarit:
if (is_active_sidebar('sidebar-footer-6')) {
dynamic_sidebar('sidebar-footer-6');
} else {
echo 'Please add widgets';
}
En fait, le problème a été résolu, mais je ne sais pas pourquoi. Ceci a donc fonctionné correctement. Après avoir utilisé la fonction par défaut de WordPress, tout a bien fonctionné. ... et c’était le point de départ pour moi ... après avoir vérifié que tout fonctionnait bien ... c’était donc un problème de syntaxe mais finalement aucun problème avec l’utilisation de l’argument name
uniquement. Maintenant, j'ai ceci et ça fonctionne très bien:
function reg_l_sid(){
$args = array('name'=> __( 'Left-sidebar', 'Tutorial-Blog' ));
register_sidebar( $args );
}
add_action ('widgets_init','reg_l_sid')
Dans l'encadré:
if ( is_active_sidebar( 'Left-sidebar' ) ) {
dynamic_sidebar( 'Left-sidebar' );
} else {
echo 'Please add widgets';
}
Je viens de mettre votre code dans mon fichier de fonction et de créer un modèle pour tester votre code. pour moi, ça marche bien. S'il vous plaît ré-évaluer vos choses, cela pourrait fonctionner.
add_action( 'widgets_init', 'twentyseventeen_widgets_init' );
function reg_l_sid(){
$args = array(
'name' => __( 'left-sidebar', 'Tutorial-Blog' ),
'id' => 'left-sidebar',
'description' => '',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>' );
register_sidebar( $args );
}
add_action ('widgets_init','reg_l_sid');
if ( is_active_sidebar( 'left-sidebar' ) ) {
dynamic_sidebar( 'left-sidebar' );
} else {
echo 'Please add widgets';
}