как вставить jQuery в очередь для загрузки перед тегом

Вопрос или проблема

Я добавил все свои скрипты в functions.php, чтобы они загружались до тега </body>, передав ‘true’ в пятом аргументе. Это работает для всех, кроме jquery. Есть идеи, что я делаю не так?

wp_enqueue_script('jquery','','','',true);
wp_enqueue_script('modernizr', 'http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.2/modernizr.js', array('jquery'), false, true);
wp_enqueue_script('my-javascript', get_template_directory_uri() . '/js/my-javascript.js', array('jquery', 'modernizr'), false, true);
wp_enqueue_script('jquery-ui', get_template_directory_uri() . '/js/jquery-ui.min.js', array('jquery'), false, true);

Попробуйте добавить это в functions.php

<?php

// Пользовательский скрипт для переноса JavaScript из заголовка в подвал
function remove_head_scripts()
{
    remove_action('wp_head', 'wp_print_scripts');
    remove_action('wp_head', 'wp_print_head_scripts', 9);
    remove_action('wp_head', 'wp_enqueue_scripts', 1);

    add_action('wp_footer', 'wp_print_scripts', 5);
    add_action('wp_footer', 'wp_enqueue_scripts', 5);
    add_action('wp_footer', 'wp_print_head_scripts', 5);
}
add_action('wp_enqueue_scripts', 'remove_head_scripts');

?>

.

Ответ или решение

Чтобы корректно подключить jQuery в WordPress перед закрывающим тегом </body>, необходимо учитывать несколько ключевых моментов. В данной ситуации, вы упомянули о том, что правильно обрабатываете скрипты с помощью функций enqueuing и используете аргумент true, чтобы загружать скрипты в футере. Однако jQuery может не загружаться в соответствии с вашими ожиданиями. Давайте внимательно рассмотрим, как это исправить.

1. Проверка правильности подключения jQuery

WordPress автоматически подключает jQuery только в заголовке по умолчанию. Если вы хотите, чтобы jQuery загружался в футере, следует убедиться, что вы не переопределяете стандартное поведение WordPress. Для корректного подключения jQuery в футере выполните следующие шаги:

function custom_enqueue_scripts() {
    // Удаляем стандартное подключение jQuery
    wp_deregister_script('jquery');

    // Подключаем jQuery из CDN или своей версии
    wp_enqueue_script('jquery', 'https://code.jquery.com/jquery-3.6.0.min.js', array(), null, true);

    // Подключаем другие скрипты
    wp_enqueue_script('modernizr', 'http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.2/modernizr.js', array('jquery'), false, true);
    wp_enqueue_script('my-javascript', get_template_directory_uri() . '/js/my-javascript.js', array('jquery', 'modernizr'), false, true);
    wp_enqueue_script('jquery-ui', get_template_directory_uri() . '/js/jquery-ui.min.js', array('jquery'), false, true);
}
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');

2. Перенос скриптов в футер

Вы также упомянули использование функции для перемещения скриптов из <head> в футер. Однако это может вызвать конфликты. Вместо этого, сфокусируемся на стандартном подходе WordPress, чтобы избежать лишних обращений. Возможно, стоит убрать вашу функцию remove_head_scripts.

3. Оптимизация порядка загрузки

Если у вас остались проблемы с порядком загрузки, попробуйте явным образом указать зависимости при подключении скриптов. Например, если my-javascript.js зависит от jQuery и Modernizr, то убедитесь, что это правильно отражено в параметрах array() функции wp_enqueue_script():

wp_enqueue_script('my-javascript', get_template_directory_uri() . '/js/my-javascript.js', array('jquery', 'modernizr'), false, true);

4. Проверка работы

После внесения изменений убедитесь, что они применены. Откройте консоль разработчика (F12 в большинстве браузеров) и проверьте, загружается ли jQuery в футере и нет ли конфликтов между скриптами.

Заключение

Следуя этим рекомендациям, вы сможете корректно подключить jQuery и другие скрипты в конце страницы перед закрывающим тегом </body>. Это не только улучшит производительность вашего сайта, снизив время загрузки, но и обеспечит стабильность работы всех скриптов. В случае возникновения сложностей, ознакомьтесь с документацией WordPress или проконсультируйтесь с сообществом.

Оцените материал
Добавить комментарий

Капча загружается...