Hinzufügen eines Kontrollkästchens zum Design-Customizer

Beim Versuch, dem Design-Customizer ein Kontrollkästchen hinzuzufügen, scheint es “immer” ausgewählt zu sein. Wenn Sie versuchen, die Auswahl aufzuheben, können Sie das nicht tun, fast so, als ob es einen JS-Code gäbe, der sie dazu zwingt, ausgewählt zu bleiben.

Ich verwende serialisierte Design-Optionen und alles ist korrekt angeschlossen. Der Code ähnelt dem folgenden (ausgetriggers über den ‘customize_register’ Hook):

$wp_customize->add_setting( mytheme_options[chk_hide_description], array( 'default' => false, 'type' => 'option', 'capability' => 'edit_theme_options' ) ); $wp_customize->add_control( 'display_header_text', array( 'settings' => mytheme_options[chk_hide_description], 'label' => __( 'Hide site description' ), 'section' => 'title_tagline', 'type' => 'checkbox', ) ); 

Gleiches Problem berichtet hier: http://ottopress.com/2012/how-to-leverage-the-theme-customizer-in-your-own-themes/#div-comment-11254 .

Solutions Collecting From Web of "Hinzufügen eines Kontrollkästchens zum Design-Customizer"

Checkbox ist möglich. Ein Beispiel, ich hoffe das hilft dir.

Zuerst müssen Sie die Einstellung über add_setting , wichtig ist der Param- type mit Wertoption. Steuern Sie danach das Feld über add_control und setzen Sie den Parameter type auf checkbox . Alternative ist es möglich zu select . Wenn ich einen Standardwert über std hinzufüge, dann arbeite es, auch ohne diesen Parameter. Alternative funktioniert auch, wenn ich den Auswahlparameter mit den Werten 1 und 0 hinzufüge. Aber auf den Tests funktioniert es gut, wenn ich den Parameter nur auf checkbox setze. Sie finden die Quelle in meinem Projekt, siehe Link unten.

Sie können auch die Ausgabe auf Wertstring in der Zeile 246 in der wp-includes / class-wp-customize-control.php debuggen; vielleicht hilft es.

debuggen:

  case 'checkbox': var_dump( $this->value() ); 

Beispiel:

  // Add settings for output description $wp_customize->add_setting( $this->option_key . '[echo_desc]', array( 'default' => $defaults['echo_desc'], 'type' => 'option', 'capability' => 'edit_theme_options' ) ); // Add control and output for select field $wp_customize->add_control( $this->option_key . '_echo_desc', array( 'label' => __( 'Display Description', 'documentation' ), 'section' => 'title_tagline', 'settings' => $this->option_key . '[echo_desc]', 'type' => 'checkbox', 'std' => '1' ) ); 

Sehen Sie das Ergebnis dieser Quelle. Screenshot mit der Checkbox im WordPress Customizer

Sie finden ein Arbeitsergebnis in meinem Thema Dokumentation, das auf Github gehostet wird .

Ich hatte ein ähnliches Problem und es stellte sich heraus, dass die Einstellung 'type' => 'option' für add_setting die Ursache war.

Das Entfernen dieses Problems triggerse mein Problem, und unten ist, was ich gerade benutze, und es funktioniert gut.

 $wp_customize->add_section('footer_social_media_section' , array( 'title' => __('Footer Social Media', 'dd_theme'), 'priority' => 1020 )); $wp_customize->add_setting('show_footer_facebook', array( 'default' => '1' )); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'show_footer_facebook', array( 'label' => __('Show Facebook Link', 'dd_theme'), 'section' => 'footer_social_media_section', 'settings' => 'show_footer_facebook', 'type' => 'checkbox', ) ) );