web-dev-qa-db-fra.com

sidebar dynamique ne montrant rien

J'ai créé une barre latérale personnalisée et mis le widget Filtre de produit Ajax YITH WooCommerce Ajax à l'intérieur pour afficher le filtre par couleur. J'ai fait les étapes suivantes:

  1. Dans le fichier functions.php, j'ai enregistré la barre latérale comme ceci:

     add_action( 'widgets_init', 'my_register_sidebars' );
        function my_register_sidebars() {
        /* Register the 'primary' sidebar. */
        register_sidebar(
            array(
                'id'            => 'primary',
                'name'          => __( 'Primary Sidebar' ),
                'description'   => __( 'A short description of the sidebar.' ),
                'before_widget' => '<div id="%1$s" class="widget %2$s">',
                'after_widget'  => '</div>',
                'before_title'  => '<h3 class="widget-title">',
                'after_title'   => '</h3>',
            )
        );
    
    }
    
  2. J'ai fait sidebar-primary.php comme ceci:

    <div id="sidebar-primary" class="sidebar">
    <?php dynamic_sidebar( 'primary'); ?></div>
    
  3. Ajout d'un widget à ma barre latérale

  4. Sur ma page où j'ai besoin du contenu de la barre latérale pour être affichée, j'ai inclus sidebar-primary.php comme ceci:

    <?php include('sidebar-primary.php'); ?>

Mais rien ne montre. Aucune suggestion? Peut-être que je fais quelque chose de mal sans même m'en rendre compte. Merci.

2
Nancy

Dans votre fichier functions.php, essayez d’enregistrer la barre latérale sans utiliser une fonction comme celle-ci.

register_sidebar(array(    //try not to enclose this in function
'id'            => 'primary',
        'name'          => 'Primary Sidebar',
        'description'   => 'A short description of the sidebar.',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3 class="widget-title">',
        'after_title'   => '</h3>',
));

Et faire appel à la page comme ça

<?php get_sidebar('primary'); ?>

Et dans votre sidebar-primary.php, je suppose que vous avez fermé la div. Dans votre code, vous n'avez pas montré la division fermée de ce fichier.

METTRE À JOUR

Essayez la méthode ci-dessus et modifiez le ID name de la barre latérale à partir de functions.php. Vous ne pouvez pas utiliser le même nom pour l’ID et le fichier php de la barre latérale (sidebar_primary.php).

Vous devez donc modifier le nom de l’identifiant à partir du fichier functions.php ainsi que de sidebar_primary.php. comme

<?php dynamic_sidebar( 'primary'); ?></div>

Dans le code ci-dessus, primary est id et vous devez le renommer.

2
Rishabh