Intereting Posts
Как я могу увидеть список моих пользовательских типов сообщений последнего термина, в котором я был? Требуемая ошибка проверки в поле пользовательского контроля woocommerce, которое не отображается на экране Перемещение поддомена формы установки WP Не уверен, почему этот шаблон для пользовательских сообщений типа сообщений ничего не отображает. Чего не хватает? image_downsize возвращает массив? Проблема с циклом WP_Query и поисковым термином Многопользовательская с двумя разными темами Добавить кнопку загрузки в плагин prettyPhoto Использование оператора if в index.php вместо создания отдельных файлов шаблонов Почему в моей теме я не могу видеть все содержимое статики под сообщениями? Добавление файлов в медиабиблиотеку вручную без ftp Моя настройка цвета фона не работает Идентификатор меню в навигационном меню игнорируется Нужна помощь с дружественным URL в WordPress пользовательский контент в качестве пользовательских типов сообщений

Почему загрузка 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, будут пытаться «разумно» размещать сценарии в нижнем колонтитуле для ускорения загрузки, когда это возможно.