Элемент управления Customizer, который устанавливает для параметра значение "" или "пустое" и show () или hide () управление цветом

Вы знакомы с ядром Customizer $wp_customize->get_setting( 'header_textcolor' ) ? Он станет доступен после add_theme_support( 'custom-header' ) . Он имеет два элемента управления, один из них – WP_Customize_Color_Control() который находится в разделе Цвета (ID: colors ) . А другой – это флажок, который устанавливает настройку в "blank" и скрывает customize-control-header_textcolor управления customize-control-header_textcolor если снимите флажок, и устанавливает значение "" и показывает контроль цвета, если проверка, которая находится в заголовке сайта и теге (ID : title_tagline ) .

Я extends WP_Customize_Control но это не очень хорошо в производительности, потому что каждый раз, когда вы устанавливаете флажок, wp.customize.instance( 'custom_textcolor' ).set("") сначала устанавливается ядром в true до моей реализации "" и когда снимите флажок, экземпляр сначала установит значение false перед "blank" чего мой «customize-preview.js» получит false которая мне не нужна, но хочу получить, когда пользователь нажимает кнопку «Очистить» на WP_Customize_Color_Control() .

 $wp_customize->add_control( new WP_Blank_Checkbox_Control( $wp_customize, 'display_custom_text', array( 'label' => __( 'Display Custom Text' ), 'section' => 'title_tagline', 'settings' => 'custom_textcolor', ) ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'custom_textcolor_id', array( 'label' => __( 'Custom Color' ), 'section' => 'colors', 'settings' => 'custom_textcolor', ) ) ); 

Вот мой полный class WP_Blank_Checkbox_Control :

 if (is_customize_preview()) { class WP_Blank_Checkbox_Control extends WP_Customize_Control { public $type = 'blank_checkbox'; /** * Render the control's content. */ public function render_content() { ?> <label> <input type="checkbox" value="blank" data-customize-setting-link="custom_textcolor"> <?php echo $this->label; ?> </label> <script> // The ID of the WP_Blank_Checkbox_Control. var checkbox = jQuery('#customize-control-display_custom_text').find('input'); // The ID of the WP_Customize_Color_Control. var color = jQuery('#customize-control-custom_textcolor_id'); // Initially hide the color control if the setting is "blank". if (wp.customize.instance( 'custom_textcolor' ).get() === "blank") { color.hide(); // Initially uncheck the checkbox if the setting is "blank", otherwise check it. checkbox.attr('checked', false); } else checkbox.attr('checked', true); // If the checkbox is changed, do this. checkbox.change(function() { if (checkbox.is(':checked')) { wp.customize.instance( 'custom_textcolor' ).set(""); color.show(); checkbox.attr('checked', true); } else { wp.customize.instance( 'custom_textcolor' ).set("blank"); color.hide(); checkbox.attr('checked', false); } } ); </script> <?php } } } 

Я хочу создать custom_textcolor_id управления флажком, который динамически устанавливает параметр в "" и показывает custom_textcolor_id управления custom_textcolor_id , проверяя или "blank" и скрывая элемент управления цветом, header_textcolor флажок, точно так же, как функция checkbox от header_textcolor . (Любая помощь будет оценена.)