Intereting Posts
Сохранить, обновить, получить и дезинформировать пост-мета как HTML не простой Где пользователь WordPress хранит сообщения электронной почты при вводе комментариев? Добавить тег структуры в permalink? Как использовать фильтр? Помогите изменить текст для нового уведомления веб-сайта (wpmu_welcome_notification) Подписка на подписку через WP? Как добавить настройки настраивателя в дочернюю тему Как добавить данные пользователя в разные таблицы сразу после регистрации пользователя Как настроить таргетинг на определенную роль пользователя? Как настроить сущность (post-type?) Со многими зависимыми объектами (больше post-types?) Добавить Google Analytics вручную или использовать подключаемый модуль? Получить цвет фона для Live Preview с помощью API настройки темы? Можно ли запускать какой-либо JavaScript при вскрытии всплывающей подсказки? Pods CMS: как добавить собственный столбец в AdNvanced Content Type metabox с пользовательскими значениями типа сообщения

Как создать зависимое поле в Customizer?

Я пытаюсь иметь зависимое поле в Customizer. В одном поле установлен флажок Enable Custom Excerpt Length . Другой – текстовое поле Custom Excerpt Length . Я хочу использовать контекстное поле, используя active_callback . Я следую этой статье. https://make.wordpress.org/core/2014/07/08/customizer-improvements-in-4-0/

У меня возникает проблема с проверкой контрольного значения в функции обратного вызова.

  $wp_customize->add_setting( 'blueplanet_options[theme_enable_custom_excerpt]', array( 'default' => false, 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'theme_enable_custom_excerpt', array( 'label' => 'Enable Custom Excerpt Length', 'section' => 'admin_section', 'settings' => 'blueplanet_options[theme_enable_custom_excerpt]', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'blueplanet_options[theme_custom_excerpt_length]', array( 'default' => 20, 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'theme_custom_excerpt_length', array( 'label' => 'Custom Excerpt Length', 'section' => 'admin_section', 'settings' => 'blueplanet_options[theme_custom_excerpt_length]', 'type' => 'text', 'active_callback' => 'flag_is_custom_excerpt_enabled', ) ); // Callback function function flag_is_custom_excerpt_enabled(){ // how to check if `theme_enable_custom_excerpt` is enabled or disabled } 

Solutions Collecting From Web of "Как создать зависимое поле в Customizer?"

Вы можете получить и проверить значение вашего мода, как обычно, где угодно.

Этот код проверен и работает (код внутри cyb_customizer() – это именно тот код, который вы отправили в вопросе, добавлена ​​только добавленная часть add_section ):

 function flag_is_custom_excerpt_enabled(){ $blueplanet_options = get_theme_mod( 'blueplanet_options'); if( empty( $blueplanet_options['theme_enable_custom_excerpt'] ) ) { return false; } return true; } add_action( 'customize_register', 'cyb_customizer' ); function cyb_customizer( $wp_customize ) { $wp_customize->add_section( 'admin_section', array( 'title' => 'Admin section', 'description' => 'Admin section', 'priority' => 0, ) ); $wp_customize->add_setting( 'blueplanet_options[theme_enable_custom_excerpt]', array( 'default' => false, 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'theme_enable_custom_excerpt', array( 'label' => 'Enable Custom Excerpt Length', 'section' => 'admin_section', 'settings' => 'blueplanet_options[theme_enable_custom_excerpt]', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'blueplanet_options[theme_custom_excerpt_length]', array( 'default' => 20, 'capability' => 'edit_theme_options', ) ); $wp_customize->add_control( 'theme_custom_excerpt_length', array( 'label' => 'Custom Excerpt Length', 'section' => 'admin_section', 'settings' => 'blueplanet_options[theme_custom_excerpt_length]', 'type' => 'text', 'active_callback' => 'flag_is_custom_excerpt_enabled', ) ); }