Как заставить wp_enqueue_scripts загружаться в КОНЦЕ <head>?
Я загружаю скрипты через 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, так что спасибо за подсказку! :-)
Хук 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 );
Но я не рекомендую этого делать. Скорее всего, у значения по умолчанию есть веская причина. Некоторые скрипты могут перестать работать при изменении этого параметра.

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