jQuery.min.js не загружается правильно после перемещения WordPress?

#javascript #jquery #wordpress

#javascript #jquery #wordpress

Вопрос:

После перемещения моего сайта WordPress в новое место я начал видеть странное поведение администратора WP, в том числе:

  1. При нажатии на сообщение для редактирования появляется сообщение красным цветом: «Редактор блоков требует JavaScript. Пожалуйста, включите JavaScript в настройках вашего браузера или попробуйте плагин Classic Editor» на короткое время появляется, а затем страница становится полностью белой.
  2. В настройках моей темы (Divi Extra) все параметры перечислены, но их кнопки включения / выключения исчезли.
  3. На экранах настроек некоторых плагинов перестали работать такие вещи, как перетаскивание и нажатие на вкладки для просмотра дополнительных настроек.

При проверке консоли браузера после того, как я столкнулся с этими вещами, я вижу много «jQuery.Отложенное исключение: jQuery (someFunction) не является функцией» и соответствующее «Неперехваченная ошибка типа: jQuery (someFunction) не является функцией» для нескольких функций jQuery. Например:

 jquery.min.js?ver=3.5.1:2 jQuery.Deferred exception: jQuery(...).sortable is not a function TypeError: jQuery(...).sortable is not a function
    at HTMLDocument.<anonymous> (<anonymous>:1:69)
    at e (https://example.com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1:2:30005)
    at t (https://example.com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1:2:30307) undefined
    
Uncaught TypeError: jQuery(...).sortable is not a function
    at HTMLDocument.<anonymous> (<anonymous>:1:69)
    at e (jquery.min.js?ver=3.5.1:2)
    at t (jquery.min.js?ver=3.5.1:2)
 

Чтение, которое я делал по этому поводу, заставляет думать, что проблема заключается в том, что функции jQuery запрашиваются для запуска до того, как они были определены, и что решение состоит в том, чтобы убедиться, что jQuery загружается до того, как что-либо зависит от него. Это имеет смысл, но когда я проверяю исходный код, это прямо вверху страницы:

 <script src='https://example.com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1' id='jquery-core-js' type="text/psajs" orig_index="2"></script>
 

Я ничего не делал с wp_enqueue_script (), потому что все, что я прочитал до сих пор, заставляет думать, что это вступает в игру, только если я добавляю некоторые пользовательские js … но единственный «пользовательский» javascript на моем сайте — это то, что входит в мои плагины. И опять же, ничего из этого не происходило до того, как я переместил WordPress.

Что я пытаюсь конкретно понять, так это:

  1. Моя проблема в том, что jquery.min.js загружается ли недостаточно быстро / быстро на этих страницах администратора?
  2. Если да, то каков наилучший способ заставить его загружаться быстрее / раньше?

Заранее спасибо всем, кто может и хочет оказать помощь!

Комментарии:

1. Проверьте, нет ли другого jQuery.js версия, загружаемая дальше по странице, которая уничтожит плагины, назначенные первой версии

Ответ №1:

Отключение модуля на моем веб-сервере с именем mod_pagespeed_beacon устранило все три из этих проблем.