Как предотвратить загрузку всех ресурсов плагина?

WordPress загружает все клиентские ресурсы всех плагинов, а не только интересующий плагин. Это может иметь смысл загружать jqery глобально, но нет смысла загружать все Javascript другого плагина в back-end плагин.

Теперь, как я могу предотвратить, что WordPress загружает другие ресурсы плагина?

Там есть wp_dequeue, но я не уверен, что в конце загрузки всех плагинов есть еще один обратный вызов, поэтому я могу самостоятельно его очистить. В настоящее время я заинтересован в фильтрации исходных ресурсов плагина.

ps: Я действительно застрял в этом, и я действительно очень удивлен, что он, похоже, спроектирован таким образом, я имею в виду, что wp_enque в порядке, но WP не заботится о том, что это такое, поэтому вам нужно делать всю работу с ногами сам. Просто представьте себе 2+ разных приложения на основе Dojo / CommonJS / Require-JS со своими загружаемыми конфигурациями и версиями: проблема без остановок, вот что я сейчас вижу.

спасибо, любая идея приветствуется.

Вы можете попробовать повторить wp_head и wp_footer, чтобы увидеть, что они содержат, но, к сожалению, это пропустит некоторые из файлов hardcode авторов. В основном то, что я делаю, это wp_dequeue / wp_deregister на основе того, что я вижу, загружаемого либо в источник, либо в журнал ошибок, либо даже просто глядя в каждый из установленных плагинов, чтобы увидеть, что называется. Мне проще загружать производственные сайты в локальную среду. Используя Notepad ++, затем нажмите «Поиск» – «Найти во всех файлах» -> Укажите каталог (или темы) плагинов в моей локальной среде разработки и найдите шаблоны, такие как wp_enqueue даже *.js и т. Д., Так как я получаю лучшую картину и что может быть загружен. Затем я делаю необходимые изменения в живой среде.

Если вы определите сценарии, которые вам не нужны, поместите их в функцию, которая выглядит примерно так внутри ваших тем. Файл functions.php:

 function wp_getridofscript() { wp_dequeue_script( 'jquery-ui-core' ); wp_deregister_script( 'jquery-ui-core' ); } add_action( 'wp_print_scripts', 'wp_getridofscript', 100 ); 

У вас может быть столько, сколько вы хотите, и вам не нужно писать отдельную функцию для каждого. IE:

 function wp_getridofscript() { wp_dequeue_script( 'jquery' ); wp_deregister_script( 'jquery' ); wp_dequeue_script( 'jquery-ui-core' ); wp_deregister_script( 'jquery-ui-core' ); } add_action( 'wp_print_scripts', 'wp_getridofscript', 100 ); 

Это всегда проблема при использовании плагина, который загружает дополнительные файлы css / js. Вы можете добавить пользовательские поля на страницы, где вы хотите исключить файлы css и js (называемые такими же, как page_exclude_css и _js), с разделенными запятыми стилями и обработчиками скриптов в качестве значений. Затем вы добавляете функцию к крючкам wp_enqueue (в позиции, подобной 9999), которая отменяет все эти обработчики.

Поскольку нет имен дескрипторов, назначенных центральным репозиторием, плагинам не удастся создать собственные имена дескрипторов, и даже если бы существовал центральный репозиторий, некоторым плагинам понадобится использовать версию 3 библиотеки JS, тогда как другие версии 4 (на самом деле это произошло со мной с помощью библиотеки select2), поэтому простая схема именования может оказаться недостаточной, даже если она существует.

Конечным результатом этой ситуации является то, что любое попытка решения будет ad-hoc и не будет «будущим профи». Если вы владеете сайтом, по крайней мере, вы можете видеть, какие плагины задерживаются и деактивируют их, если вы пишете тему или плагин, вам просто нечего делать, кроме как попробовать протестировать популярные темы и плагины и настроить свой код на основе количество гладкой интеграции, которое вы хотите с ними.