it-swarm.com.ru

Запуск процесса сохранения настройщика только с использованием Javascript

Я работаю над пользовательской темой, которая использует API настройки WordPress, чтобы позволить пользователю играть с частями содержимого своего веб-сайта, в основном с главной страницей, которую он может изменять, добавляя/удаляя пользовательские блоки, такие как последние сообщения, дочерние страницы, и т. д. Структура черных собирается и заполняется в пользовательском вводе.

Все работает отлично, кроме сохранения, кажется, что настройщик имеет некоторую безопасность, которая мешает мне сохранить входное значение: чтобы сохранить его, мне нужно вручную вызвать событие нажатия клавиши Javascript, выбрав ввод и нажав клавишу. Если я этого не сделаю, кнопка отправки остается отключенной.

Просматривая /wp-admin/js/customize-controls.js, мне удается активировать кнопку отправки:

wp.customize.trigger('change')

Но даже несмотря на то, что объект сохранения разблокирован, он не оказывает никакого влияния: входное значение не отправляется в admin_ajax.php, а мои данные не сохраняются.

Любая идея о том, как я мог заставить триггер на API Javascript для сохранения моих данных? Я не смог найти подробный документ по API WP JS, который тоже мог бы помочь, если я где-то пропустил его.

4
Askelon

Вместо использования jQuery для обновления значения пользовательского ввода используйте функцию set() объекта wp.customize (находится в customize-base.js ):

wp.customize( key, function ( obj ) {
    obj.set( newValue );
} );

Где key - это параметр, а newValue - это обновленное значение.

Также стоит отметить, что в классе, который расширяет WP_Customize_Control, обязательно используйте $this->get_link() для помещения атрибута данных data-customize-setting-link на пользовательский ввод (находится в class-wp-customize-control.php ).

3
Matthew