wp_enqueue_script został wywołany niepoprawnie


20

Nie wiem jak, ale teraz pojawia się ten błąd:

Uwaga: niepoprawnie wywołano wp_enqueue_style. Skrypty i style nie powinny być rejestrowane ani kolejkowane aż do haków wp_enqueue_scripts, admin_enqueue_scripts lub login_enqueue_scripts. Aby uzyskać więcej informacji, zobacz Debugowanie w WordPressie. (Ta wiadomość została dodana w wersji 3.3.) W wp-zawiera / functions.php w linii 3049

Uwaga: skrypt wp_enqueue_script został wywołany niepoprawnie. Skrypty i style nie powinny być rejestrowane ani kolejkowane aż do haków wp_enqueue_scripts, admin_enqueue_scripts lub login_enqueue_scripts. Aby uzyskać więcej informacji, zobacz Debugowanie w WordPressie. (Ta wiadomość została dodana w wersji 3.3.) W wp-zawiera / functions.php w linii 3049

Ostrzeżenie: Nie można modyfikować informacji o nagłówkach - nagłówki już wysłane przez (wyjście rozpoczęte w wp-include / functions.php: 3049) w wp-login.php w linii 415

Ostrzeżenie: Nie można modyfikować informacji nagłówka - nagłówki już wysłane przez (wyjście rozpoczęte w wp-include / functions.php: 3049) w wp-login.php w linii 427

To właśnie otrzymuję, gdy próbuję się zalogować ... Na innych stronach mam tylko dwa pierwsze błędy. Próbuję to naprawić, ale nie mogę. Jakieś sugestie?


1
Do Notices wydawać dość wymowne. Co próbowałeś, a co nie działało?
— s_ha_dum

@ s_ha_dum Próbowałem wielu rzeczy, które znalazłem w Google ... teraz rozwiązania toscho działały dla mnie i mogę zalogować się do panelu administracyjnego, ale widzę, że coś jest nie tak z ładowaniem stylu, ponieważ czcionka jest nie taki sam jak był. Ciągle otrzymuję te błędy:
— raiden

Odpowiedzi:


15

Wyłącz wszystkie wtyczki i przejdź do domyślnego motywu. Teraz powinno zniknąć.

Następnie włączaj każdy dodatek krok po kroku, aż problem powróci. Znasz teraz źródło, powiedzmy wtyczkę.

Wtyczka dzwoni prawdopodobnie wp_enqueue_scriptza wcześnie. Znajdź wszystkie wystąpienia tej funkcji, a następnie upewnij się, że są powiązane z określonymi działaniami:

  • wp_register_script() należy wezwać do działania wp_loaded
  • wp_enqueue_script na jednym z działań
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts lub
    • login_enqueue_scripts(zobacz ten wątek dla tego drugiego).

Problem polega na tym, że nie mogę się zalogować, ponieważ otrzymuję również ten dziwny błąd związany z plikami cookie. Błąd mówi, że zablokowałem pliki cookie w przeglądarce, ale ich nie zablokowałem ... To takie dziwne, ponieważ wszystko, co zrobiłem dzisiaj, to dodanie kilku wierszy do style.css, wszystko było dobrze, ale kilka godzin po tych błędach.
— raiden

@raiden Następnie zmień nazwę katalogu wtyczek na FTP, zrób to samo dla aktualnie aktywnego motywu.
— fuxia

Teraz mogę zalogować się do panelu ... dziękuję! ale teraz dostaję jeszcze jeden błąd. Ostrzeżenie: Nie można modyfikować informacji nagłówka - nagłówki już wysłane przez (wyjście rozpoczęte w wp-obejmuje / funkcje.php: 3049) w wp-obejmuje / pluggable.php w linii 896
— raiden

4

Na podstawie Gregory'ego Schultza rozwiązanie :

Zawiń wszystkie skrypty i style w funkcję i podłącz tę funkcję do enqueueakcji docelowej . 👇

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 - front-end

admin_enqueue_scripts - strona administratora

login_enqueue_scripts - Strona logowania


2

Dzieje się tak dlatego, że funkcje te są wywoływane bezpośrednio z pliku functions.php, bez użycia funkcji. Dowiedz się, które linie w functions.php nie znajdują się w funkcji takiej jak ta, i dodaj je.

Przykład dla datepicker:

-Zamiast tego w 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');

-Dodamy to

    // Definiujemy funkcję:
    funkcja MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Dodaj funkcje do listy ładowania WP.
    działanie dodatkowe („wp_enqueue_scripts”, „MYTHEME_scripts”);

    funkcja 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');
    }

    // Dodaj funkcje do listy ładowania WP.
    add Działalności („wp_enqueue_style”, „MYTHEME_styles”);

Mam nadzieję, że to działa


1

Oznacza to, że istnieją 3 „punkty końcowe”, dla wp_enqueue_script()których są skrypty wp_enqueue_endendend dla interfejsu użytkownika, skrypty_enqueue_scripts dla ekranu logowania, skrypty_enqueue_script dla panelu administracyjnego. Sprawdź ten link .

Ten błąd występuje, ponieważ wp_enqueue_script()został wywołany niepoprawnie.


Rozumiem, co tam jest, ale nie wiem, jak (zaimplementować) to „Poprawka: Zamiast tego użyj skryptów wp_enqueue_scripts”.
— raiden

oznacza to, że po prostu musisz użyć wp_enqueue_scriptszamiast, wp_print_stylesale wątpię, że ma to związek z twoją sprawą. To tylko przykład rozwiązywania problemów. W twoim przypadku jest kilka funkcji we wtyczkach lub motywie, które nadużywają, wp_enqueue_script()więc otrzymujesz ten błąd ... tak myślę.
— JMau

Zaczynałem 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.pakować wszystkie moje skrypty i style w funkcje i informacja zniknęła.
— Gregory Schultz

Poza tym nie dostaję błędów
— Gregory Schultz

1

Zamiast wyłączać wszystkie wtyczki jeden po drugim lub modyfikować bazę kodu w celu debugowania, możesz użyć wtyczki Query Monitor, aby zawęzić źródło tego błędu.

Gdy zobaczysz ten błąd zgłoszony w konsoli:

wp_register_style został niepoprawnie wywołany. Skrypty i style nie powinny być rejestrowane ani kolejkowane aż do haków wp_enqueue_scripts, admin_enqueue_scripts lub login_enqueue_scripts. Aby uzyskać więcej informacji, zobacz Debugowanie w WordPressie. (Ta wiadomość została dodana w wersji 3.3.0.)

Ostatnia kolumna ( Component) pokaże wtyczkę, która powoduje błąd. Następnie wyszukaj wewnątrz tej wtyczki (lub motywu), aby znaleźć i rozwiązać problem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.