Intereting Posts
Автоматическое добавление атрибутов Alt при загрузке изображений в медиабиблиотеку Пользовательские меню: проблема динамической подсветки с пользовательской домашней ссылкой Использование функций WP внутри javascript Показать редактор по умолчанию на странице блога (панель администрирования) События с несколькими датами события + постоянная ссылка для каждой даты Последнее сообщение Thumbnail Alt Текст отсутствует Как перенаправить только 404 страницы с htaccess в WordPress Удалить html-код из мобильного виджета Как отобразить основной домен для моей установки WordPress? Не удалось установить соединение MySQL. До того, как он был joomla, но я изменил его на worpress Поиск категорий идентификаторов категорий на страницах пересечения категорий структура сообщений и страниц Мне нужна базовая помощь с пользовательскими типами сообщений Получить идентификатор комментария верхнего уровня Сценарий инициализации для «стандартных» аспектов веб-сайта WordPress?

Как создать зависимое поле в 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 } 

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

Этот код проверен и работает (код внутри 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', ) ); }