it-swarm.com.de

Widgets werden im Design-Customizer nicht angezeigt

Ich entwickle ein neues Thema und verwende mehrere Seitenleisten in diesem Thema. Alles funktioniert einwandfrei, aber die Widgets werden nicht im Abschnitt zum Anpassen von Designs angezeigt. Alle Widgets funktionieren einwandfrei unter "Darstellung -> Widgets", jedoch nicht unter "Darstellung -> Anpassen". Ich benutze WordPress 3.9.1.

So habe ich sie in functions.php deklariert

if(function_exists('register_sidebar'))
 {

    register_sidebar ( array (
            'name' => 'Widget Area 1',
            'id' => 'widget-1',
            'description' => 'Widget Area 2.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );



    register_sidebar ( array (
            'name' => 'Widget Area 2',
            'id' => 'widget-2',
            'description' => 'Widget Area 2.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );


    register_sidebar ( array (
            'name' => 'Widget Area 3',
            'id' => 'widget-3',
            'description' => 'Widget Area 3.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );

    register_sidebar ( array (
            'name' => 'Widget Area 4',
            'id' => 'widget-4',
            'description' => 'Widget Area 4.',
            'before_widget' => '<div id="%2$s" class="widget %2$s">',
            'after_widget' => '</div>',
            'before_title' => '<h3>',
            'after_title' => '</h3>' ,
    ) );

}

Und so nenne ich sie.

<?php
    if (! function_exists ( 'dynamic_sidebar' ) || ! dynamic_sidebar ( 'Widget Area 1' )) :

endif;?>

Es wird gut angezeigt, wenn ich einen Widget-Bereich habe, aber sobald ich mehrere hinzufüge, verschwindet es aus dem Customizer.

3
AKR

Widgets werden im Customizer nur angezeigt, wenn Sie sich auf der Seite befinden, auf der sie verwendet werden.

Zum Beispiel habe ich eine Seitenleiste für die Archivseite. Wenn ich im Customizer und auf der Homepage bin, wird diese Seitenleiste nicht angezeigt. Wenn ich jedoch im Customizer zu einer Archivseite navigiere, wird diese im Widget-Bereich angezeigt.

9
Matt Cromwell

Ich weiß, dass Sie dies vor langer Zeit gefragt haben, aber ich hatte nur das gleiche Problem und schließlich das Problem herausgefunden. In meiner functions.php-Datei hatte ich jquery (wp_deregister_script('jquery')) abgemeldet. Dies führt anscheinend dazu, dass die Widgets im Customizer nicht funktionieren, obwohl meine Seite noch jquery (über wp_enqueue_script) geladen hat.

Um das Problem zu beheben (vorausgesetzt, Sie haben dasselbe Problem wie ich), müssen Sie jquery erneut registrieren, indem Sie wp_register_script('jquery', ('url_to_jquery'), false, '1.11.1'[or whatever your jquery version is]) aufrufen.

1
manwill

@PieterGoosen ist richtig, in dynamic_sidebar ( 'Widget Area 1' )) rufst du den Namen, nicht die ID, die widget-1. ist

Versuchen Sie stattdessen, die ID zu verwenden.

0
jose_nation

Dies ist die echte Lösung für Ihr Problem: Sie müssen nur sicherstellen, dass Sie diese Funktion in der Fußzeile und vor dem schließenden Tag hinzufügen. </body>:

<?php wp_footer();?>

stellen Sie außerdem sicher, dass Sie <?php wp_header();?> vor dem Tag </head> haben. Ich hoffe diese Hilfe

0
shadi

Das Widget wird niemals mit seinem Namen oder mit seiner ID angezeigt.

Bitte überprüfen Sie sidebar.php oder footer.php, wo Ihr Widget angezeigt werden soll, ob die Seitenleisten-ID, die Sie auf der functions.php-Seite registrieren, identisch ist oder nicht.

Wenn Sie Ihre Widget-ID 'something' in functions.php und 'something-else' verwenden, in denen Sie zeigen möchten, dass Ihr Widget angezeigt wird, ist nichts aufgegangen!

Beispiel:

Wenn Sie Ihr Widget in functions.php mit "page-sidebar" registrieren, müssen Sie Ihr Widget mit <?php dynamic_sidebar( 'page-sidebar' ); ?> in Ihrer Seitenleiste oder Fußzeile aufrufen.

0