быстрый вопрос. Я использую jquery для своего текущего проекта (последняя версия). Несколько плагинов, которые я использую, также используют jquery, и они вставляются через wp_head(). Поскольку я хочу, чтобы мой веб-сайт был достаточно компактным и быстрым, эти избыточные скрипты следует удалить.
Есть ли способ отфильтровать строку «jquery.js» в wp_head() и удалить тег, который встраивает скрипт? Как вы можете видеть на следующем снимке экрана, jquery.js не понадобится. Можно ли удалить это с помощью крючка?
Вы зависите от авторов плагинов, правильно зарегистрировавших скрипты. Многие плагины просто закидывают свои скрипты в голову, не используя
wp_register_script
и соответствующие API. Можете ли вы найти, какие плагины добавляют какой скрипт и как они это делают?есть ли способ узнать, откуда он исходит? похоже, что ни один из моих плагинов не загружает этот скрипт. Ни моя встроенная карта Google, ни кнопка Facebook. Однако оно есть. Любая идея, как я могу увидеть, что загружает этот скрипт?
ну, извините, это должно быть из плагина, потому что, когда я избавился от wp_head() в моем заголовке, он исчез. есть ли другой способ добавить фильтр в wp_head() и просто отфильтровать «script.js»?
Нет фильтра, который покрывает весь вывод, созданный во время wp_head(). Вам придется использовать довольно сложный процесс буферизации вывода, начиная с wp_head, а затем отфильтровывая то, что вам не нужно, перед освобождением буфера.
Давайте предположим, что вы имеете дело с плагинами, которые правильно зарегистрировали свои скрипты. Попробуйте добавить это в свой functions.php, а затем просмотреть исходный код одной из ваших страниц:
В нем будут перечислены все фактически зарегистрированные сценарии и их зависимости.
Если то, что вы хотите отменить, находится в этом списке и не вызывается как зависимость от другого скрипта, проще всего просто вызвать
wp_deregister_script
его с указанным здесь дескриптором.Однако, скорее всего, вы имеете дело со случаем, когда плагин не следует передовым методам добавления скрипта. Из вашего вывода видно, что какой-то плагин добавил jQuery 1.5 без предварительной отмены регистрации jquery и перерегистрации его с другой версией. поэтому все, что зависит от jquery, требует включения версии, поставляемой в комплекте с WP.
Вы можете использовать wp_deregister_style() и wp_deregister_script() для очистки чрезмерно агрессивных инъекций скриптов/стилей плагинов. Например, вот как я «оптимизирую» внедрение стиля/скрипта Contact Form 7:
Если вы знаете, какие плагины являются виновниками, вы можете использовать аналогичный подход.
Да, вы можете отключить появление определенных плагинов или скриптов.
Вот пример того, как я отключил плагин easy fancybox от появления
Надеюсь, поможет 🙂