it-swarm.com.de

dynamische Seitenleiste zeigt nichts an

Ich habe eine benutzerdefinierte Seitenleiste erstellt und das YITH WooCommerce Ajax-Produktfilter-Widget eingefügt, um den Filter nach Farbe anzuzeigen. Ich habe die folgenden Schritte ausgeführt:

  1. In meiner functions.php habe ich die Sidebar folgendermaßen registriert:

     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. Ich habe sidebar-primary.php so gemacht:

    <div id="sidebar-primary" class="sidebar">
    <?php dynamic_sidebar( 'primary'); ?></div>
    
  3. Widget zu meiner Seitenleiste hinzugefügt

  4. Auf meiner Seite, auf der der Inhalt der Seitenleiste angezeigt werden soll, habe ich sidebar-primary.php wie folgt eingefügt:

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

Es zeigt sich aber nichts. Irgendwelche Vorschläge? Vielleicht mache ich etwas falsch, ohne es zu merken. Vielen Dank.

2
Nancy

Versuchen Sie in Ihrer Datei functions.php, die Seitenleiste zu registrieren, ohne diese Funktion zu aktivieren

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>',
));

Und rufen Sie auf dieser Seite an

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

Und in deinem sidebar-primary.php gehe ich davon aus, dass du die div geschlossen hast. In Ihrem Code haben Sie keinen geschlossenen Teil dieser Datei angezeigt.

UPDATE

Versuchen Sie die obige Methode und ändern Sie den ID name der Seitenleiste von functions.php. Sie können nicht den gleichen Namen für die ID und die Seitenleisten-PHP-Datei (sidebar_primary.php) verwenden.

Sie müssen also den ID-Namen sowohl in der Datei functions.php als auch in sidebar_primary.php ändern. mögen

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

Im obigen Code ist primary id und Sie müssen es umbenennen.

2
Rishabh