Intereting Posts
Как префикс post permalinks с / blog / – без влияния на пользовательские типы сообщений? Настроить список edit.php Pages на панели инструментов, чтобы показывать только страницы с определенным шаблоном? добавьте магазин woocommerce для каждого пользователя buddypress Как добавить метабокс ТОЛЬКО к определенному типу продукта WooCommerce Добавление содержимого в боковые панели Три последних сообщения, один на срок if заявление для WordPress по умолчанию показан на одном сообщении Могу ли я снова получить доступ к моему веб-сайту WordPress? Ссылка на следующую запись? Как получить доступ к переменной страницы внутри действия Имя сайта не отображается в строке браузера, только URL Невозможно переопределить правила css по умолчанию для плагина Архив настраиваемого типа сообщений в подпапке Образ ребенка таксономии WordPress WordPress и Godaddy Shared Hosting – Контент безопасности / вредоносные программы

Процесс сохранения настроек триггера только с Javascript

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

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

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

wp.customize.trigger('change') 

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

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

Вместо использования jQuery для обновления значения пользовательского ввода используйте wp.customize 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 на пользовательский ввод (найденный в классе-wp-customize-control. php ).