web-dev-qa-db-fra.com

Les widgets ne fonctionnent pas dans Customizr mais dans Apparence

J'ai des problèmes avec mes widgets. J'ai correctement enregistré les zones de widgets; les widgets apparaissent dans le menu "Apparence". Cependant, les widgets n'apparaissent pas dans la section Customizr de WP; obtenir cette erreur:

Il n'y a aucune zone de widget actuellement affichée dans l'aperçu. Naviguez dans l'aperçu jusqu'à un modèle qui utilise une zone de widget pour accéder à ses widgets ici.

J'ai essayé les solutions mentionnées ici: Les widgets ne s'affichent pas dans le personnaliseur de thème et ici La section des widgets ne s'affiche pas dans le personnaliseur de thème mais n'a pas eu de chance.

Mon code est:

register_sidebar(array(
            'name' => 'Sidebar Widgets',
            'id' => 'sidebar-widgets',
            'before_widget' => '<section class="widget">',
            'after_widget' => '</section>',
            'before_title' => '<h4>',
            'after_title' => '</h4>'
        ));

<?php if ( is_active_sidebar( 'sidebar-widgets' ) ) : ?>
        <?php dynamic_sidebar('sidebar-widgets'); ?>
        <?php endif; ?>

Exécution de WordPress 4.4.2.

J'ai essayé les choses suivantes: 1. J'ai essayé dynamic_sidebar dans différents modèles (en-tête, page de garde, index). 2. essayé de naviguer sur différentes pages comme suggéré, pas de chance 3. pas d'erreur de console 4. thème essayé sur une autre installation de WordPress, pas de chance 5. essayé un autre thème, les widgets fonctionnent

Tout autre code que je peux ajouter à cette question pour aider à résoudre les problèmes?

3
Hiriji

Le personnaliseur a besoin que la barre latérale soit "affichée" pour détecter son existence sur la page. Dans votre code, vous affichez la barre latérale uniquement si elle est "active", ce qui signifie qu'elle contient au moins un widget. Sinon, si aucun widget n'est inclus, il ne s'affiche pas et le personnalisateur ne peut donc pas le détecter.

Ne vérifiez pas "activité" dans l'encadré, le display_sidebar doit afficher div vide ou similaire, si aucun widget n'existe dans celui-ci, il est donc inutile d'empêcher son exécution.

2
Mark Kaplun