Intereting Posts
Получение повторяющихся сообщений на домашней странице с помощью виджета, добавленного между сообщениями Пользовательская тема: добавление нежелательных тегов <p> в контент Импортируйте 10 000 пользователей в WordPress с определенным идентификатором для каждого пользователя Автоматическая печать адреса Сообщения Batcache больше не отображаются в источнике страницы изменение результата поиска только из выдержки до полного содержимого Включить шаблон, если сообщение является отдельным продуктом Получение изображений в RSS Reader Как заставить пользовательский тип сообщения использовать конкретный шаблон? Попытка отключить слайдер для фильтра цены WooCommerce Изображение в фоновом режиме не отображается в мобильном браузере, которое подается с локального хоста wamp Как создать подкатегорию для пользовательского типа сообщений? Вставить несколько записей в качестве родительских Настроить меню администратора WordPress Как удалить автор (ы) из определенных должностей

Можно ли расширять WP Customize JS Methods?

Мне интересно, можно ли расширить методы анонимного объекта api в wp-admin/js/customize-control.js . Мне нужно переписать один из этих методов с моей собственной логикой, но я подозреваю, что это невозможно, так как оно завернуто в выраженное выражение функции:

 /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); 

Насколько я могу судить, я не могу продлить прототип из окна, потому что он выполнен анонимно и недоступен из window.wp.customize . Любая идея, если такое возможно? Существует даже упоминание об исключении этого в документации / описании методов .toggle (): https://github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110 , но я «Не знаю, означают ли они просто форматирование всего JS-файла, удаление очереди версии WP и зависание вашего, или если они означают или что-то другое.

Обратите внимание, что это похоже на то, что должно быть возможно с помощью wp.customize.{method}.extend({ foo: // replace method foo here }) но это применимо только к общедоступным базовым классам / объектам, а не к wp-admin/js/customize-control.js

Solutions Collecting From Web of "Можно ли расширять WP Customize JS Methods?"

Я усилю свой небольшой комментарий по вашему вопросу. Но опять намек; Я не эксперт JS. Следящий источник, подсказки использовались только при игре с Customizer для разных проверок, например, как моя песочница .

wp.customize

Понимание интерфейса пользовательского интерфейса WP темы сосредотачивается на понимании объекта wp.customize javascript. Объект wp.customize важен, и вы должны установить его с самого начала.

Живой пример

Следующий небольшой пример демонстрирует это. Сначала я устанавливаю var api в объект customizer. После этого я устанавливаю свои пользовательские поля в api и улучшаю это с помощью небольшого источника jQuery, чтобы обновить результат для предварительного просмотра в реальном времени.

 ( function( $ ) { var api = wp.customize; // Site title and description. api( 'blogname', function( value ) { value.bind( function( to ) { $( '#header h1 a, #footer a.site-name' ).html( to ); } ); } ); api( 'blogdescription', function( value ) { value.bind( function( to ) { $( '#header p.site-description' ).html( to ); } ); } ); } )( jQuery ); 

Настройки и элементы управления

Объекты управления хранятся в wp.customize.control а объекты настройки хранятся в wp.customize . Класс ценности обладает множеством функций, которые могут вам помочь.

  • instance (id) – Получить объект из коллекции с указанным идентификатором.
  • имеет (id) – возвращает true, если коллекция содержит объект с указанным id, а в противном случае – false.
  • add (id, value) – Добавить объект в коллекцию с указанным идентификатором и значением.
  • remove (id) – удалить объект из коллекции.
  • create (id). Создайте новый объект, используя конструктор по умолчанию и добавьте его в коллекцию.
  • каждый (обратный вызов, контекст) – итерация по элементам в коллекции.

Пользовательские настройки

С помощью этих функций мы можем улучшить наши пользовательские настройки.

 var api = wp.customize, mysetting = api.instance( 'my_custom_setting' ); 

также можно использовать для массива

 var api = wp.customize, mysetting = api.instance( 'my_custom_settings[my_custom_setting_field]' ); 

Получить

См. Результат в консоли.

 console.log( api.instance( 'my_custom_settings[my_custom_setting_field]' ).get() ); 

Задавать

Вы также можете изменить значения настроек с помощью set функций.

 api.instance( 'my_custom_settings[my_custom_setting_field]' ).set( 'my new value' ) ); 

Получить с контролем, как объект

 console.log( api.control.instance( 'my_custom_setting_field' ) ); 

Полезный источник

  • WP-администратора / JS / настраивают-controls.js
  • WP-включает / JS / настроить-preview.js
  • WP-включает / JS / настроить-base.js