Wordpress - не могу поставить в очередь мой custom-скрипт после всех других скриптов - PullRequest
0 голосов
/ 19 марта 2020

В WordPress, используя бесплатный шаблон GeneratePress, я пытаюсь создать sh мой собственный скрипт после всех остальных. Большая проблема в том, что все скрипты плагина ( Visual Portfolio ) всегда загружаются в самом конце, после моих скриптов.

Я пытался поместить параметр с очень высоким приоритетом в $ add_action () работает, но не работает.

function register_scripts_and_styles() {
    wp_enqueue_script('custom-js',  get_stylesheet_directory_uri() . '/js/custom-js.js', null, true);
}
add_action( 'wp_enqueue_scripts', 'register_scripts_and_styles', 99999 );

У вас есть идеи, как решить эту проблему? Большое спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Вот идея, файлы js и css в WP используют другую технику, чтобы выяснить, в каком порядке следует загружать файлы js \ css.

здесь функция

wp_enqueue_script('custom-js', get_stylesheet_directory_uri() . '/js/custom-js.js', array('js-handle-of-some-dependency','js-handle-of-some-other-dependency'), true);

Каждый скрипт имеет свой дескриптор, это первый аргумент этой функции, в вашем случае это custom-js.

Основано на копании в коде плагина , это main js имеет дескриптор visual-portfolio

Таким образом, вы можете просто поставить в очередь свой скрипт с установкой его дескриптора в качестве зависимости.

И окончательное решение будет:

function register_scripts_and_styles() {
    wp_enqueue_script( 'custom-js', get_stylesheet_directory_uri() . '/js/custom-js.js', array( 'jquery', 'visual-portfolio' ), '1', true );
}
add_action( 'wp_enqueue_scripts', 'register_scripts_and_styles' );

I ' Мы также добавили jquery в качестве зависимости, так как, я полагаю, вы используете jQuery в своем js коде, вы можете удалить его, если нет.

Я также установил версию на '1' - это версия строки запроса, которая будет применена к вашему JS коду, поэтому когда вы обновляете и перемещаете код в реальном времени, вы можете заставить браузеры пользователя загружать только одну sh одну изменяющуюся версию здесь.

И посмотрите последний аргумент true, это означает, что ваш скрипт будет добавлен в нижний колонтитул.

Если вы Ваш код опирается не только на main.js этого плагина, вам может понадобиться добавить больше зависимостей, так как этот плагин ставит в очередь кучу скриптов, полный список их смотрите в /wp-content/plugins/visual-portfolio/classes/class-assets.php из строки 350, в конце register_scripts метода класса определено в этом файле. Таким образом, вы действительно можете поместить точно все дескрипторы скрипта, на которые опирается ваш пользовательский код js, и WP определит правильный порядок связывания этих файлов со страницей для вас.

Удачная кодировка:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...