Мне интересно, возможно ли расширить методы анонимного 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
api
является анонимным, это просто синонимwp.customize
(см. Строку 3), который доступен во всем мире. Однако, похоже, что еще одна объектная модель, используемая для элементов управления, вызываетready
функцию,initialize
поэтому у вас может не быть возможности (то есть всегда слишком поздно) перезаписывать методы - что вы пытаетесь расширить?wp.customize
и добавляю функции к этому объекту. см. здесь для примера источника - github.com/bueltge/Documentation/blob/master/js/…Ответы:
Я дополню свой небольшой комментарий на ваш вопрос. Но снова намек; Я не эксперт JS. Следующие источники, подсказки, использовались только при игре с настройщиком для различных проверок, примеров, таких как моя песочница .
wp.customize
Понимание интерфейса настройщика тем WP основано на понимании объекта javascript wp.customize.
wp.customize
Объект важен , и вы должны установить его на старте.Живой пример
Следующий небольшой пример демонстрирует это. Сначала я установил var
api
для объекта настройщика. После этого я установил свои настраиваемые поля наapi
и улучшил их с помощью небольшого исходного кода jQuery, чтобы обновить результат для предварительного просмотра в реальном времени.Настройки и элементы управления
Объекты управления хранятся в,
wp.customize.control
а объекты настроек хранятся вwp.customize
. В классе значений есть много функций, в этом вам могут помочь.Пользовательские настройки
С помощью этих функций мы можем улучшить наши пользовательские настройки.
также можно использовать для массива
Получить
Смотрите результат в консоли.
Набор
Вы также можете изменить значения настроек через функцию
set
.Получить с контролем, как объект
Полезный источник
источник