Я работаю над настраиваемой темой, которая использует 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 ).