#javascript #jquery #wordpress
#javascript #jquery #wordpress
Вопрос:
После перемещения моего сайта WordPress в новое место я начал видеть странное поведение администратора WP, в том числе:
- При нажатии на сообщение для редактирования появляется сообщение красным цветом: «Редактор блоков требует JavaScript. Пожалуйста, включите JavaScript в настройках вашего браузера или попробуйте плагин Classic Editor» на короткое время появляется, а затем страница становится полностью белой.
- В настройках моей темы (Divi Extra) все параметры перечислены, но их кнопки включения / выключения исчезли.
- На экранах настроек некоторых плагинов перестали работать такие вещи, как перетаскивание и нажатие на вкладки для просмотра дополнительных настроек.
При проверке консоли браузера после того, как я столкнулся с этими вещами, я вижу много «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.
Что я пытаюсь конкретно понять, так это:
- Моя проблема в том, что jquery.min.js загружается ли недостаточно быстро / быстро на этих страницах администратора?
- Если да, то каков наилучший способ заставить его загружаться быстрее / раньше?
Заранее спасибо всем, кто может и хочет оказать помощь!
Комментарии:
1. Проверьте, нет ли другого jQuery.js версия, загружаемая дальше по странице, которая уничтожит плагины, назначенные первой версии
Ответ №1:
Отключение модуля на моем веб-сервере с именем mod_pagespeed_beacon устранило все три из этих проблем.