Добавление флажка в настройку темы

При попытке добавить флажок в настройку темы он, кажется, «всегда» выбран. Если вы попытаетесь отменить выбор, вы не сможете, почти как если бы какой-то JS-код заставил его оставаться выбранным.

Я использую сериализованные параметры темы, и все правильно подключено. Код аналогичен следующему (инициируется с помощью hook'-customize_register):

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

О той же проблеме сообщалось здесь: http://ottopress.com/2012/how-to-leverage-the-theme-customizer-in-your-own-themes/#div-comment-11254 .

Флажок установлен. Например, я надеюсь, что это поможет вам.

Сначала вы должны определить настройку, используя add_setting , важным является type со значением. После этого управления поле через add_control и установите checkbox type . Альтернативу можно использовать select . Если я добавлю значение по умолчанию через std , тогда запустите его, также без этого параметра. Альтернативные работы также прекрасны, если я добавлю параметр выбора со значениями 1 и 0. Но на тестах отлично работает, если я установил параметр только для checkbox . Вы находите источник внутри моего проекта, см. Ссылку ниже.

Также вы можете отлаживать вывод строки значений в строке 246 в файле wp-includes / class-wp-customize-control.php; возможно, это помогает.

отлаживать:

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

Пример:

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

См. Результат этого источника. снимок экрана с изображением флажка в настройке WordPress

Вы найдете рабочий результат в моей документации по теме , размещенной на Github .

У меня была аналогичная проблема, и оказалось, что причиной этого является установка 'type' => 'option' для add_setting .

Удаление этой проблемы решило мою проблему, а ниже – то, что я использую в настоящее время, и все работает отлично.

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