Wie kann ich Widgets-Bereiche in Customizer bekommen?

Ich habe ein seltsames Problem mit WordPress. Ich erstelle ein Theme und die Theme-Anpassung wird von Customizer gesteuert.

Also, im Wesentlichen in functions.php ich füge hinzu

add_theme_support( 'widget-customizer' ); 

Ich registriere eine Sidebar mit:

 register_sidebar( array( 'name' => __( 'Test Sidebar' ), 'id' => 'test-sidebar', )); 

dann in index.php ich füge die allgemeine get_footer () hinzu; und in footer.php habe ich:

    

Jetzt ist das erste seltsame Problem, dass ich im Vorschaufenster jedes Widget sehen kann, das über die Admin-Seite in Appearance hinzugefügt wurde, aber im Customizer Widget-Bereich kann ich keinen Bereich sehen und bekomme diese Nachricht

In der Vorschau werden derzeit keine Widgetbereiche angezeigt. Navigieren Sie in der Vorschau zu einer Vorlage, die einen Widgetbereich verwendet, um hier auf die Widgets zuzugreifen.

Aber das zweite seltsame Problem ist, dass ich in meiner functions.php hinzufügen:

  add_action( 'wp_footer', function () { ?>    <?php } ); 

Jetzt kann ich den Widgetbereich im Customizer sehen.

Was könnte das Problem sein?

Solutions Collecting From Web of "Wie kann ich Widgets-Bereiche in Customizer bekommen?"

Nach einer ganzen Nacht habe ich die Antwort bekommen. Warum der Customizer mir die Widget-Bereiche nur über den wp_footer- Hook zeigt, habe ich in meiner footer.php überprüft und das Problem war, dass wp_footer () vor dem Sidebar-Abschnitt aufgerufen wurde.

  /* Always have wp_footer() just before the closing  * tag of your theme, or you will break many plugins, which * generally use this hook to reference JavaScript files. */ wp_footer(); 

Das Verschieben nach den Seitenleisten funktioniert einwandfrei.

Ja, wp_footer() hook ist wichtig. Wenn Sie wp_footer hook aus der footer.php Datei entfernen, wp_footer Sie die Nachricht von class-wp-customize-widgets.php .

In der Vorschau werden derzeit keine Widgetbereiche angezeigt. Navigieren Sie in der Vorschau zu einer Vorlage, die einen Widgetbereich verwendet, um hier auf die Widgets zuzugreifen.

Wenn Sie den wp_footer Hook entfernen, wird der gesamte Customizer-Bereich dort sein, aber es wird nicht funktionieren, da @WestonRuter darauf hinweist, weil customize-preview.js nicht da ist.


Ich würde nur ein paar Tipps geben:

Sie müssen add_theme_support( 'widget-customizer' ); nicht hinzufügen add_theme_support( 'widget-customizer' ); widget-customizer plugin ist ein integraler Bestandteil von WordPress core jetzt, und Sie haben diese Unterstützung bereit.

Die andere Sache, footer.php ist wahrscheinlich nicht der klügste Ort, um Ihre Seitenleiste organisatorisch zu setzen. Sie können das WordPress-Theme von twentysixteen überprüfen, um die Organisation zu sehen.