Подключение «всегда свежей» версии JQuery в WordPress

А вообще, про подключение CSS и JS в WordPress на моём сайте есть отдельный видеоурок.

Наверное вы знаете, что на некоторых сайтах можно встретить JQuery версии 1.4.2, на некоторых 1.4.4, а иногда даже 1.6.4 (это самая последняя версия на момент написания поста).

Понятно, что часть владельцев сайтов не имеют представления о JQuery и им плевать, что там у них подключено — главное, чтобы работало, другим же просто лень следить за выходом нового JQuery и постоянно обновлять код.

Как же сделать так, чтобы на сайте автоматически подключалась всегда только самая новая версия?

Проще простого, самая последняя версия JQuery всегда находится по адресу:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Если валидация будет ругаться на эту строчку кода, знайте, она написана в HTML5 🙂

А вот пример подключения JQuery к WordPress. Учтите, это будет работать только в том случае, если в вашей теме присутствуют wp_head() и wp_footer().

add_action( 'init', 'true_jquery_register' );
 
function true_jquery_register() {
	if ( !is_admin() ) {
		wp_deregister_script( 'jquery' );
		wp_register_script( 'jquery', ( 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' ), false, null, true );
		wp_enqueue_script( 'jquery' );
	}
}

Вставьте этот код в файл functions.php. Он находится в папке с вашей текущей темой.

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии — 20

Комментирование этого поста более не доступно.
  • Максим 26 мая 2012 #

    Спасибо! Первый из ~5 способов который корректно работает на моих сайтах. Постоянно возникали проблемы с JQuery, и загрузка с внешнего источника очень кстати.

  • Алексей 25 июля 2012 #

    Очень интересный сайт. Подкину ещё способ, который отличается сначала проверкой админа и только после этого добавлением функции + линк я другой обычно использую + всё это закидывается только в футер:

    // Подключение внешнего упакованного jQuery в футер {
    function my_jQuery() {
    	wp_deregister_script('jquery');
    	wp_register_script('jquery','http://code.jquery.com/jquery.min.js','','AlwaysTheLatestVersion',true);
    }
    if( !is_admin()){add_action('init','my_jQuery');}
    // } Подключение внешнего упакованного jQuery в футер

    Таким же способом можно регистрировать другие библиотеки:

    // Подключение внешнего упакованного SWFObject в шапку {
    function my_SWFObject() {
    	wp_deregister_script('swfobject');
    	wp_register_script('swfobject','http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js','','2.2',false);
    }
    if( !is_admin()){add_action('init','my_SWFObject');}
    // } Подключение внешнего упакованного SWFObject в шапку
    // Подключение внешнего упакованного Prototype в футер {
    function my_Prototype() {
    	wp_deregister_script('prototype');
    	wp_register_script('prototype','https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js','','1.7.0.0',true);
    }
    if( !is_admin()){add_action('init','my_Prototype');}
    // } Подключение внешнего упакованного Prototype в футер
    • Алексей 25 июля 2012 #

      Там очепятка получилась:
      *который отличается сначала проверкой админки.

  • Serj.sat 27 ноября 2013 #

    Спасибо за все функции для wordpress =) многие внедрил на сайт! Успехов!

    • Миша 27 ноября 2013 #

      пожалуйста)

      • Александр 28 марта 2020 #

        Не сомненно способ хорош, но проблема в том что библиотеки и плагины почему то написанны под jquery старых версий, бред какой то, подключаю новую и все перестает работать ,круто одним словом

  • Алексей 21 сентября 2015 #

    А для чего необходима проверка на админку?

    • Миша 22 сентября 2015 #

      Можете и в админке переподключить, если хотите.

  • Илья Волков 12 апреля 2016 #

    У меня библиотека с примером из поста помещается в footer. Что нужно прописать чтобы

    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>

    попадала в head после тега title?

    • Илья Волков 12 апреля 2016 #

      я вот по этому уроку http://eysman.pro/kak-vyvesti-modalnoe-vsplyvayushhee-okno-bez-plaginov.html
      (потом удалите - не спам)
      пытаюсь сделать всплывающее, модальное, popUP окно. Когда на кнопку нажимаешь, затемняется bg и появляется отцентрованная форма обратной связи или какой-нибудь другой формы.
      Знаю, что представленный способ работает на статических сайтах, а вот на WP - увы, но нет.
      нажимаю на кнопку и просто в урле site.re/# появляется...

    • Миша 12 апреля 2016 #

      Чтобы она попала в head, измените последний аргумент функции wp_register_script() на false.

      Модальное не работает из-за ошибки в jQuery, тут много всяких ситуаций может быть. Если после перемещения jQuery в head ничего не изменится, откройте консоль браузера, посмотрите, что не так.

      • Илья Волков 12 апреля 2016 #

        Спасибо, библиотека теперь в head. Эх, но не работает эта "всплывашка". Буду искать варианты как ее реализовать без плагинов.

  • Олег 18 марта 2020 #

    Миша, подскажите:) после добавления вашего кода ломается слайдер в теме, как можно обойти эту проблему?

  • Олег 18 марта 2020 #

    И меню в мобильной версии открытым остается

    • Миша 18 марта 2020 #

      Возможно ваш скрипт слайдера не поддерживает новую версию jQuery, но это не точно 🙂

  • Галина 3 апреля 2020 #

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

    • Галина 3 апреля 2020 #

      Сори, нашла ответ выше )))

      • Миша 3 апреля 2020 #

        Здравствуйте!

        Ок, рад, что вы разобрались 🙂

  • Антон Литвиненко 17 сентября 2020 #

    Здравствуйте!
    Относительно недавно на проектах которые планируют интеграцию с wordpress стал использовать при верстке те версии jQuery, которые использует wordpress, хотя раньше всегда менял кодом, похожим на код из статьи.
    Причиной перехода стали проблемы на одном из магазинов, где платный фильтр ни в какую не хотел работать с новой версией jQuery.
    Я так понимаю, что разработчики плагинов пилят их тоже под стандартную версию.
    Насколько правильное мое решение или может есть способ лучше?

    • Миша 17 сентября 2020 #

      Здравствуйте,

      Я использую обычно jquery из ядра, а сам код оборачиваю в это:

      jQuery( function( $ ) {
       
      } );

      Пока что мне этого хватало. Но если какой-то плагин не работает под новую версию, то нужно либо менять версию, либо плагин.