Как заставить wp_enqueue_scripts загружаться в КОНЦЕ <head>?

4 июл. 2012 г., 06:55:13
Просмотры: 15.4K
Голосов: 8

Я загружаю скрипты через wp_enqueue_scripts в своей дочерней теме.

Проблема в том, что мой файл style.css загружается ДО скриптов плагинов, хотя мне нужно переопределить CSS плагинов с помощью моего style.css. Поэтому он должен загружаться ПОСЛЕ скриптов плагинов.

Я не хочу добавлять "!important" ко всем моим CSS стилям, потому что это утомительно и может сломать часть моего оформления.

Я пробовал добавить приоритет, но это никак не повлияло на порядок загрузки.

    add_action('wp_enqueue_scripts', 'scripts', 9999);

Мне нужно просто загружать wp_enqueue_scripts в самом конце заголовка, прямо перед </head>. Как это можно сделать? Спасибо :-)

ОБНОВЛЕНИЕ:

Ура, я разобрался!

Просто зарегистрируйте фильтр с помощью:

    add_action('wp_print_styles', 'scripts');

wp_print_styles загружается с приоритетом 8 и все равно помещает их в заголовок, потому что это часть wp_head.

Я понял это, посмотрев в wp-includes/default-filters.php, так что спасибо за подсказку! :-)

0
Все ответы на вопрос 2
3

Хук wp_enqueue_scripts по умолчанию добавляется с приоритетом 1 к wp_head. Подробности можно посмотреть в файле wp-includes/default-filters.php.

Вы можете попробовать изменить приоритет:

remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 9999 );

Но я не рекомендую этого делать. Скорее всего, у значения по умолчанию есть веская причина. Некоторые скрипты могут перестать работать при изменении этого параметра.

4 июл. 2012 г. 07:36:02
Комментарии

К сожалению, это приводит к поломке всего сайта.

Nate Nate
4 июл. 2012 г. 08:47:42

Я в это не верю, но да, побочные эффекты неизбежны.

fuxia fuxia
4 июл. 2012 г. 14:57:05

Пожалуйста, попробуйте описать это и объяснить всем, как это может поместить подключенные скрипты и стили в конец head документа, так как здесь они явно добавляются в конец body!!

WordPress Speed WordPress Speed
12 июл. 2019 г. 12:40:01
0

Я считаю, что более дружелюбный к WordPress способ сделать это — использовать параметр $deps в wp_enqueue_styles(). Предполагая, что стили плагина загружаются через wp_enqueue_styles() (что, к сожалению, делают жалко мало плагинов), вы указываете массив идентификаторов стилей, от которых зависят ваши стили, и тогда они загружаются после них.

4 июл. 2012 г. 18:40:07