wp_enqueue_script был вызван неправильно

20

Я не знаю как, но сейчас я получаю эту ошибку:

Обратите внимание: wp_enqueue_style был вызван неправильно. Скрипты и стили не должны регистрироваться или ставиться в очередь до тех пор, пока не будут перехвачены wp_enqueue_scripts, admin_enqueue_scripts или login_enqueue_scripts. Пожалуйста, смотрите Отладка в WordPress для получения дополнительной информации. (Это сообщение было добавлено в версии 3.3.) В wp-includes / functions.php в строке 3049

Обратите внимание: wp_enqueue_script был вызван неправильно. Скрипты и стили не должны регистрироваться или ставиться в очередь до тех пор, пока не будут перехвачены wp_enqueue_scripts, admin_enqueue_scripts или login_enqueue_scripts. Пожалуйста, смотрите Отладка в WordPress для получения дополнительной информации. (Это сообщение было добавлено в версии 3.3.) В wp-includes / functions.php в строке 3049

Предупреждение: Невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с wp-includes / functions.php: 3049) в wp-login.php в строке 415

Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод начался с wp-includes / functions.php: 3049) в wp-login.php в строке 427

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

RAIDEN
источник
1
В Notices , кажется , говорит само за себя. Что вы пробовали и что не сработало?
s_ha_dum
@s_ha_dum Я перепробовал много вещей, которые нашел в Google ... только сейчас решения toscho сработали для меня, и я могу войти в свою админ-панель, но я вижу, что что-то идет не так со стилем загрузки, потому что шрифт не такой как был. Я продолжаю получать эти ошибки:
Райден

Ответы:

15

Отключите все плагины и переключитесь на тему по умолчанию. Это должно исчезнуть сейчас.

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

Плагин вызывает, вероятно, wp_enqueue_scriptслишком рано. Найдите все вхождения этой функции, затем убедитесь, что они связаны с конкретными действиями:

  • wp_register_script() следует призвать к действию wp_loaded
  • wp_enqueue_script на одном из действий
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts или
    • login_enqueue_scripts(см. эту тему для последнего).
Фуксия
источник
Проблема в том, что я не могу войти, потому что я также получаю эту странную ошибку с куки. Ошибка говорит, что я заблокировал куки в своем браузере, но я не заблокировал их ... Это так странно, потому что все, что я сделал сегодня, это добавление нескольких строк в style.css, все было хорошо, но Через несколько часов после того, как у меня были эти ошибки.
Райден
@raiden Затем переименуйте каталог плагинов для FTP, сделайте то же самое для текущей активной темы.
fuxia
Теперь я могу войти в свою панель ... спасибо! но теперь я получаю одну ошибку более Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход начался в сор-включает / functions.php: 3049) в сор-включает / pluggable.php на линии 896
Raiden
4

Основываясь на решении Григория Шульца :

Оберните все свои скрипты и стили в функцию и подключите эту функцию к целевому enqueueдействию. 👇

function my_admin_scripts() {
  wp_enqueue_style( 'admin-css', get_stylesheet_directory_uri() . '/admin/css/admin.css' );
  wp_enqueue_script( 'admin-js', get_stylesheet_directory_uri() . '/admin/js/admin.js', true );
}
add_action( 'admin_enqueue_scripts', 'my_admin_scripts' );

wp_enqueue_scripts - внешний интерфейс

admin_enqueue_scripts - страница администратора

login_enqueue_scripts - страница авторизации

MYK
источник
2

Причина, по которой это происходит, заключается в том, что эти функции вызываются прямо из файла functions.php, без использования функции. Узнайте, какие строки в functions.php не находятся внутри такой функции, и добавьте их.

Пример для выбора даты:

Вместо этого в functions.php:

wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');

-Мы добавляем это

    // Определяем функцию:
    function MYTHEME_scripts () {
    wp_enqueue_script ( 'JQuery-щ-DatePicker');
    }

    // Добавить функции в список загрузки WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

    function MYTHEME_styles () {
    wp_enqueue_style ('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
    wp_enqueue_style ('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
    }

    // Добавить функции в список загрузки WP.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Надеюсь, что это работает

Альберт Соке
источник
1

Это означает, что есть 3 «конечные точки», для wp_enqueue_script()которых являются wp_enqueue_scripts для интерфейса, login_enqueue_scripts для экрана входа в систему, admin_enqueue_scripts для панели администратора. Проверьте эту ссылку .

Вы получаете эту ошибку, потому что wp_enqueue_script()был вызван неправильно.

JMau
источник
Я понимаю, что там, но я не знаю, как (реализовать?) Это «Исправление: вместо этого используйте wp_enqueue_scripts».
Райден
это означает, что вы просто должны использовать wp_enqueue_scriptsвместо, wp_print_stylesно я сомневаюсь, что это связано с вашим делом. Это просто пример устранения неполадок. В вашем случае есть некоторые функции в плагинах или темах, которые неправильно используются, wp_enqueue_script()поэтому вы получаете эту ошибку ... мое предположение.
JMau
Я получал, Notice: wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks.я обернул все свои сценарии и стили в функцию, и уведомление ушло.
Грегори Шульц
Кроме того, я не получаю ошибок
Грегори Шульц
1

Вместо того, чтобы отключить все ваши плагины по одному или изменить базу кода для отладки, вы можете использовать плагин Query Monitor, чтобы сузить источник этой ошибки.

Когда вы видите эту ошибку в консоли:

wp_register_style был вызван неправильно. Скрипты и стили не должны регистрироваться или ставиться в очередь до тех пор, пока не будут перехвачены wp_enqueue_scripts, admin_enqueue_scripts или login_enqueue_scripts. Пожалуйста, смотрите Отладка в WordPress для получения дополнительной информации. (Это сообщение было добавлено в версии 3.3.0.)

В последнем столбце ( Component) будет указан плагин, который вызывает ошибку. Оттуда сделайте поиск внутри этого плагина (или темы), чтобы найти и исправить проблему.

Кевин Лири
источник