Этот вопрос неоднократно обсуждался на протяжении многих лет, и на самом деле он довольно дублирован, но в любом случае я постараюсь обобщить / обновить «Лучшая практика» подходов.
1. Не заменяйте WordPress по умолчанию jQuery , если в этом нет необходимости.Если вы действительно заботитесь о производительности , вам не нужен jquery
2. Если ваша тема или плагин не загружает jQuery, WordPress не загружает его в front-end область по умолчанию, обычно мы должны использовать wp_enqueue_script('jquery');
для ее загрузки.Поэтому, прежде всего, убедитесь, что у вас есть jQuery.Используйте этот фрагмент кода для проверки ваших сценариев в очереди:
// Show all enqueued scripts
add_action( 'wp_print_scripts', function () {
global $wp_scripts;
$enqueued_scripts = array();
foreach( $wp_scripts->queue as $handle ) {
$enqueued_scripts[] = $wp_scripts->registered[$handle]->src;
}
var_dump($enqueued_scripts);
} );
3. Не используйте неправильный хук действия init для добавления ваших сценариев, вы должны использовать wp_enqueue_scripts вместо.
Существуют преднамеренные меры безопасности для предотвращения незарегистрированных критических сценариев администратора, таких как ядро jQuery. source
4. Большинство решений по замене jquery по умолчанию устарели.Вместо этого используйте этот код (протестировано на WP v5.1):
// Replace the default wp jquery with fallback
add_filter( 'wp_enqueue_scripts', 'replace_default_jquery_with_fallback');
function replace_default_jquery_with_fallback() {
// Change the version if needed
$ver = '1.12.4';
// Dequeue first then deregister
wp_dequeue_script( 'jquery' );
wp_deregister_script( 'jquery' );
// Load from Google
// Set last parameter to 'true' if you want to load it in footer
wp_register_script( 'jquery', "//ajax.googleapis.com/ajax/libs/jquery/$ver/jquery.min.js", '', $ver, false );
// Fallback
wp_add_inline_script( 'jquery', 'window.jQuery||document.write(\'<script src="'.includes_url( '/js/jquery/jquery.js' ).'"><\/script>\')' );
wp_enqueue_script ( 'jquery' );
}
Обратите внимание, что:
- Использование этого способа также повлияет на любой плагин, которыйзависит от jQuery
- Правильный способ полностью удалить стиль или скрипт - это удалить из очереди сначала, затем отменить регистрацию it.
- init Действие ловушка «Запускается после того, как WordPress завершил загрузку, но перед отправкой заголовков», используйте его с осторожностью.
- wp_enqueue_scripts используется для обработки front-end scripts.
- admin_enqueue_scripts используется для обработки административных сценариев .
- login_enqueue_scripts используется для страниц входа .
- Рассмотрите возможность использования jQuery Migrate , если ваш код / плагины разработаны для более старых версий jQueryчем 1.9.