Intereting Posts
Получить короткий код из содержимого и отобразить его в другом месте (например, на боковой панели) Просмотр сообщений Запрос с функцией IF Ограничить размер пользовательского фонового изображения Как установить пользовательские возможности для пользовательских таксономий? Ошибка: произошла непредвиденная ошибка HTTP во время запроса API Как я могу перенести опубликованную дату над сообщением и под заголовком входа? Как получить первый термин для текущей таксономии? В архиве категорий отображаются все сообщения, а не определенная категория Репозиторий WordPress запрещает мне вызывать wp-load.php в файле, отличном от WordPress. Показать 6 последних сообщений на главной странице? Как сортировать категорию по пользовательскому значению поля WordPress ajax вызов для не вошедших в систему пользователей, не работает Как сделать многоколоночную интересную домашнюю страницу в Weaver 2010? Как получить только определенное количество изображений из сообщения (за вычетом выделенного изображения)? Как настроить экран «Редактировать-сообщение»

Почему загрузка jQuery 2.1 в заголовке отсутствует?

Поскольку я хочу использовать jQuery 2.1 вместо 1.11, мне сначала нужно удалить регистр jQuery. Затем зарегистрируйте его с новыми значениями. :

add_action( 'wp_enqueue_scripts', 'add_scripts' ); function add_scripts() { wp_deregister_script('jquery'); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js', false, '2.1.0', false); wp_enqueue_script('jquery'); } 

Согласно руководству , это должно загрузить скрипт в заголовке. Но он загружен в нижний колонтитул. Почему это?

Я спрашиваю, потому что у меня есть плагин, который должен иметь некоторые вещи в заголовке. Поскольку jquery не загружается до нижнего колонтитула, он вызывает некоторые ошибки.

PS. Если я сделаю следующее:

  wp_deregister_script('jquery'); wp_register_script( 'jquery-2', 'http:...'); wp_enqueue_script('jquery-2'); 

WP не будет загружать контент вообще – он полностью ломается. Кто-нибудь еще испытал это?

Solutions Collecting From Web of "Почему загрузка jQuery 2.1 в заголовке отсутствует?"

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

jquery вы забираете ядро ​​jQuery и jQuery Migrate javascripts, вероятно, что вы пытаетесь сделать, это отменить регистрацию только ядра и сохранить jQuery Migrate on.

jQuery Migrate состоит из старого старого кода jQuery, который передает всю функциональность устаревшего материала в новую версию jQuery.

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

В результате вы должны отказаться от регистрации jquery-core вместо jquery чтобы сохранить некоторые функциональные возможности неповрежденными, в том числе плагины, которые они могут использовать для запуска некоторых jQuery.

Вам не нужно добавлять «false» к последнему аргументу, поскольку по умолчанию он уже ложный, я также предлагаю отказаться от вашего протокола, это гарантирует, что jQuery будет всегда обслуживаться браузером, если вы захотите переключиться на https позднее ,

Как последний штрих, пространство имен очень важно, когда вы кодируете в большой среде, где код других людей работает вместе с вашим. add_scripts() кажется для меня слишком общим, если вы пишете свою функцию внутри файла functions.php попробуйте добавить название своей темы или напишите что-то очень уникальное, поэтому вы уверены, что одна и та же функция не столкнется будущее с функцией, поступающей из плагина или что-то еще в ваших рабочих файлах.

 add_action( 'wp_enqueue_scripts', 'YOURTHEMENAME_scripts' ); function YOURTHEMENAME_scripts() { wp_deregister_script('jquery-core'); wp_register_script('jquery-core', '//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js', false, '2.1.0'); wp_enqueue_script('jquery-core'); } 

Обратите внимание, что порядок загрузки WordPress следующий:

 Core -> Plugins -> Theme 

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

Если после всего этого вы все равно получаете Javascript в нижнем колонтитуле, то в ваших файлах header.php или footer.php есть что-то ужасно неправильное: одной из причин новичков может быть местоположение wp_head() и wp_footer() определенных крючков в вашей теме, я видел это столько раз, что это было бы легко.

wp_head() – это крючок, который добавляет для вас метатеги, очередь css и js queue с последним аргументом флага, установленным на «false».

wp_footer() – это крючок, который заботится о добавлении к вам остальной части JS с последним аргументом флага, установленным на «true» и дополнительной разметкой, созданной из различных плагинов (и для панели администратора из ядра WP).

Сделайте двойную проверку местоположения ваших функций крючка, если у вас есть wp_head() в нижнем колонтитуле, тогда было бы легко объяснить, почему ваша javascript-очередь добавляется в нижний колонтитул.

Нет 1: вы должны поместить ваш deregister jquery и т. Д. Вложение в функцию, вызываемую с помощью wp_enqueue_scripts hook. Делай это так:

 add_action('wp_enqueue_scripts','jquery_2_loader'); function jquery_2_loader(){ //insert your jquery deregister and Register } 

Второй вопрос: многие плагины полагаются на enqueuing jquery. Поэтому, если вы отмените регистрацию, эти плагины больше не смогут его использовать.

Вы правы, что передача false в wp_register_script функции wp_register_script должна гарантировать, что скрипт помещается в заголовок страницы. У вас есть другие плагины, которые могут изменять местоположение ваших скриптов? Например, плагины, такие как Autoptimize, будут пытаться «разумно» размещать сценарии в нижнем колонтитуле для ускорения загрузки, когда это возможно.