Что такое вызов jQuery?

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

Я не могу разобраться, что вызывает два скрипта jQuery в моей теме. Даже если я выключаю все плагины, они все равно вызываются. Я не добавлял их в свой functions.php и также не в header.php или footer.php.

Может быть, это ядро WP вызывает их? Есть ли способ это выяснить?

Два скрипта jQuery, которые вызываются, следующие:

/wp-includes/js/jquery/jquery.js

/wp-includes/js/jquery/jquery-migrate.min.js

Я хочу отложить их или даже поместить в подвал, но если я не знаю, откуда они вызываются, я не могу их контролировать.

Было бы здорово, если бы у вас были какие-либо советы. Спасибо.

Если я прав, эти два js файла “только” загружаются самим WP для использования в админке, но не (и WP не загрузит их, если в этом нет необходимости) на фронтенде.

Как только плагин нуждается в них, они будут загружены (например, через функцию) на фронтенде.
(что, похоже, не в вашем случае, поскольку вы сказали ‘Даже если я выключаю все плагины’)

Также одной из причин загрузки этих двух js файлов на фронтенде может быть сама ваша Тема. (Подумайте о функциях, которые нуждаются в них для загрузки/показа “вещей”)

  • Это плохо? Вовсе нет.
  • Могут ли они быть в подвале? Да, могут/должны*(с точки зрения производительности это хорошее решение)*

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

Примечание: Просмотрите ‘все’ файлы темы (не только файлы дочерней темы, если вы используете дочернюю тему), упоминается ли где-нибудь слово jquery или jquery-migrate.min (но я предполагаю, что вы уже это сделали).

Сказав это, с помощью следующей функции (которую можно добавить в файл functions.php вашей (дочерней) темы) эти два файла будут “насильно” помещены в подвал.

Надеюсь, это немного поможет вам и возможно это то, что вы искали.

/**
 * Принудительное добавление скриптов в подвал
 * @link https://developer.wordpress.org/reference/since/4.2.0/
 */
function enqueue_scripts_in_footer() {
wp_deregister_script( 'jquery' ); // https://codex.wordpress.org/Function_Reference/wp_deregister_script
wp_deregister_script( 'jquery-migrate.min' );    
wp_register_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), false, true );
wp_register_script( 'jquery-migrate.min', '/wp-includes/js/jquery/jquery-migrate.min.js', array(), false, true );    
wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', array( 'jquery' ), false, true );
wp_enqueue_script( 'jquery-migrate.min', '/wp-includes/js/jquery/jquery-migrate.min.js', array( 'jquery-migrate.min' ), false, true );
}
add_action( 'wp_enqueue_scripts', 'enqueue_scripts_in_footer' );

В качестве справки о том, что происходит в функции, посмотрите здесь:

jQuery является частью ядра WordPress. Он добавлен и включен по умолчанию. Последняя версия WordPress использует последнюю версию jQuery.

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

Правильный способ добавить jQuery на ваш сайт WP:

function theme_scripts() {
  wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'theme_scripts');

Вот ссылка, которая, я думаю, будет полезной для того, что вы ищете. http://www.ericmmartin.com/5-tips-for-using-jquery-with-wordpress/

Если вы хотите добавить свой собственный файл jQuery, вам сначала нужно отменить регистрацию встроенного файла jQuery: https://codex.wordpress.org/Function_Reference/wp_deregister_script#Example

wp_deregister_script( 'jquery' );

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

Что такое вызов jQuery в WordPress?

jQuery — это популярная библиотека JavaScript, интегрированная в ядро WordPress для упрощения манипуляций с элементами DOM и обработки событий. В вашем случае у вас возникла ситуация, когда вы видите, что два скрипта jQuery (файлы jquery.js и jquery-migrate.min.js) загружаются на вашем сайте, хотя вы отключили все плагины и не вставили их в файлы functions.php, header.php или footer.php. Попробуем разобраться, почему это происходит, и что с этим можно сделать.

1. Вызов jQuery в ядре WordPress

Скрипты jQuery загружаются автоматически в WordPress в зависимости от ситуации. В последних версиях WordPress jQuery включается по умолчанию в плагинах и темах, когда они требуют его. Таким образом, даже если вы отключили все активные плагины, jQuery может быть вызван через вашу тему или использоваться в административных функциях WordPress.

2. Причины вызова jQuery

Несколько факторов могут вызвать загрузку jQuery:

  • Процесс в вашей теме: Ваша тема может явно или неявно требовать jQuery. Проверить это можно, просматривая код темы, чтобы найти любые функции, использующие jQuery.
  • Функции WordPress: Как вы правильно заметили, WordPress может загружать jQuery по необходимости, если другие функции или компоненты требуют этого.
  • Изменение порядка загрузки: Если jQuery необходимо загружать до других скриптов, это может вызывать его загрузку в шапке страницы.

3. Как обнаружить источник вызова

Чтобы точно узнать, откуда вызываются скрипты jQuery, вы можете воспользоваться следующими методами:

  • Инструменты разработчика: Воспользуйтесь инструментами разработчика в вашем браузере (обычно F12), откройте вкладку "Сеть" (Network) и посмотрите, какие скрипты загружаются. Это позволит вам увидеть, какие функции вызывают загрузку jQuery.
  • Поиск в коде: Пройдитесь по всем файлам вашей темы и посмотрите, нет ли вызовов jQuery. Не забудьте просмотреть не только файлы дочерней темы, но и родительскую.
  • Логирование: Вы можете добавить простое логирование в ваш файл functions.php, чтобы отследить, когда и где подключаются скрипты.

4. Установка jQuery в подвал или отложенная загрузка

Если вы хотите перенести jQuery в подвал или сделать его отложенной загрузки, вы можете использовать следующий код в файле functions.php вашей темы:

/**
 * Переместить скрипты в подвал
 */
function enqueue_scripts_in_footer() {
    wp_deregister_script('jquery');
    wp_register_script('jquery', '/wp-includes/js/jquery/jquery.js', array(), false, true);
    wp_enqueue_script('jquery');

    wp_deregister_script('jquery-migrate');
    wp_register_script('jquery-migrate', '/wp-includes/js/jquery/jquery-migrate.min.js', array('jquery'), false, true);
    wp_enqueue_script('jquery-migrate');
}
add_action('wp_enqueue_scripts', 'enqueue_scripts_in_footer');

Этот код отменяет регистрацию jQuery и перемещает его загрузку в подвал страницы, что положительно скажется на производительности.

Заключение

Понимание того, как jQuery вызывается и управляется в WordPress, поможет вам эффективно контролировать загрузку скриптов. Важно следить за тем, чтобы в вашей теме не было лишних вызовов jQuery, которые могут замедлить работу сайта. Надеюсь, эта информация была вам полезна. Если у вас останутся дополнительные вопросы, не стесняйтесь спрашивать!

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

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