wp_enqueue_script a fost apelat incorect

6 mar. 2014, 21:54:16
Vizualizări: 84.9K
Voturi: 33

Nu știu cum, dar acum primesc această eroare:

Notice: wp_enqueue_style a fost apelat incorect. Script-urile și stilurile nu ar trebui să fie înregistrate sau încărcate până la hook-urile wp_enqueue_scripts, admin_enqueue_scripts, sau login_enqueue_scripts. Te rugăm să consulți Debugging în WordPress pentru mai multe informații. (Acest mesaj a fost adăugat în versiunea 3.3.) în wp-includes/functions.php la linia 3049

Notice: wp_enqueue_script a fost apelat incorect. Script-urile și stilurile nu ar trebui să fie înregistrate sau încărcate până la hook-urile wp_enqueue_scripts, admin_enqueue_scripts, sau login_enqueue_scripts. Te rugăm să consulți Debugging în WordPress pentru mai multe informații. (Acest mesaj a fost adăugat în versiunea 3.3.) în wp-includes/functions.php la linia 3049

Warning: Nu se pot modifica informațiile header-ului - header-ele au fost deja trimise de (output-ul a început la wp-includes/functions.php:3049) în wp-login.php la linia 415

Warning: Nu se pot modifica informațiile header-ului - header-ele au fost deja trimise de (output-ul a început la wp-includes/functions.php:3049) în wp-login.php la linia 427

Asta primesc când încerc să mă autentific... Pe alte site-uri, am doar primele două erori. Am încercat să rezolv dar nu reușesc. Aveți sugestii?

2
Comentarii

Mesajele Notice par destul de explicite. Ce ai încercat și ce nu a funcționat?

s_ha_dum s_ha_dum
6 mar. 2014 22:06:16

@s_ha_dum Am încercat multe lucruri pe care le-am găsit pe Google... tocmai acum soluțiile lui toscho au funcționat pentru mine și pot să mă autentific în panoul de administrare, dar ceea ce observ este că ceva nu merge bine cu încărcarea stilurilor, deoarece fontul nu este același ca înainte. Continuă să apară aceste erori:

raiden raiden
6 mar. 2014 22:35:59
Toate răspunsurile la întrebare 7
3
19

Dezactivează toate modulele și treci la tema implicită. Problema ar trebui să dispară acum.

Apoi activează fiecare modul pas cu pas, până când problema reapare. Acum știi sursa, să zicem un modul.

Modulul apelează probabil wp_enqueue_script prea devreme. Găsește toate aparițiile acelei funcții, apoi asigură-te că sunt legate de acțiuni specifice:

  • wp_register_script() ar trebui apelat pentru acțiunea wp_loaded
  • wp_enqueue_script pe una dintre acțiunile
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts sau
    • login_enqueue_scripts (vezi acest thread pentru ultima).
6 mar. 2014 22:09:51
Comentarii

Problema este că nu mă pot conecta din cauza unei erori ciudate legate de cookie-uri. Eroarea spune că am blocat cookie-urile în browser, dar nu le-am blocat... E foarte ciudat pentru că tot ce am făcut astăzi a fost să adaug câteva linii în style.css, totul era în regulă, dar după câteva ore am început să primesc aceste erori.

raiden raiden
6 mar. 2014 22:12:00

@raiden Atunci redenumește directorul pluginului tău prin FTP, fă la fel și pentru tema activă în prezent.

fuxia fuxia
6 mar. 2014 22:13:05

Acum mă pot conecta în panoul de administrare... mulțumesc! Dar acum primesc încă o eroare: Warning: Cannot modify header information - headers already sent by (output started at wp-includes/functions.php:3049) in wp-includes/pluggable.php on line 896

raiden raiden
6 mar. 2014 22:20:22
1
18

Bazat pe soluția lui Gregory Schultz:

Înfășoară toate scripturile și stilurile într-o funcție și atașează acea funcție la acțiunea enqueue dorită.

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 — pagina de administrare

login_enqueue_scripts — pagina de autentificare

28 iun. 2018 09:13:07
Comentarii

Cu siguranță ajută, mulțumesc :)

jrran90 jrran90
29 nov. 2020 16:29:32
0

În loc să dezactivezi toate pluginurile unul câte unul sau să modifici codul pentru depanare, poți folosi pluginul Query Monitor pentru a identifica sursa acestei erori.

Când vezi această eroare raportată în consolă:

wp_register_style a fost apelat incorect. Scripturile și stilurile nu ar trebui înregistrate sau încărcate decât după execuția hook-urilor wp_enqueue_scripts, admin_enqueue_scripts sau login_enqueue_scripts. Consultă Depanarea în WordPress pentru mai multe informații. (Acest mesaj a fost adăugat în versiunea 3.3.0.)

Ultima coloană (Component) îți va spune care plugin sau temă declanșează eroarea. Caută în interiorul acelui plugin (sau temă) pentru a găsi și repara problema.

10 iul. 2018 19:47:19
1

Motivul pentru care se întâmplă acest lucru este că aceste funcții sunt apelate direct din fișierul functions.php, fără a fi încadrate într-o funcție. Identifică care linii din functions.php nu sunt în interiorul unei funcții, așa cum este prezentat mai jos, și adaugă-le.

Exemplu pentru datepicker:

-În loc de acest cod în 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');

-Adăugăm acest cod

// Definim funcția:
function MYTHEME_scripts() {
    wp_enqueue_script('jquery-ui-datepicker');
}
    
// Adăugăm funcțiile în lista de încărcare a WordPress.
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');
}
    
// Adăugăm funcțiile în lista de încărcare a WordPress.
add_action( 'wp_enqueue_scripts', 'MYTHEME_styles' );
23 ian. 2019 21:35:32
Comentarii

Nu există un hook wp_enqueue_style.
Cea mai bună și cea mai curată soluție, când problema apare pe site, nu în admin, este de la @Usman Ahmed

Ludwig Ludwig
6 mai 2021 01:24:26
4

Înseamnă că există 3 „puncte finale” pentru wp_enqueue_script(): wp_enqueue_scripts pentru partea frontală, login_enqueue_scripts pentru ecranul de autentificare și admin_enqueue_scripts pentru panoul de administrare. Verifică acest link.

Primești această eroare deoarece wp_enqueue_script() a fost apelat în mod necorespunzător.

6 mar. 2014 22:06:22
Comentarii

Înțeleg ce este acolo, dar nu știu cum să (implementez?) acest lucru „Soluția: Folosește wp_enqueue_scripts în loc.”

raiden raiden
6 mar. 2014 22:26:28

înseamnă că trebuie doar să folosești wp_enqueue_scripts în loc de wp_print_styles, dar mă îndoiesc că are legătură cu cazul tău. Este doar un exemplu de depanare. În cazul tău, există unele funcții în plugin-uri sau temă care folosesc incorect wp_enqueue_script(), de aceea primești această eroare... cred eu.

JMau JMau
6 mar. 2014 22:37:18

Primeam 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. Am încapsulat toate scripturile și stilurile într-o funcție și notificarea a dispărut.

Gregory Schultz Gregory Schultz
24 mai 2018 03:24:58

În afară de asta, nu primesc nicio eroare

Gregory Schultz Gregory Schultz
24 mai 2018 03:25:12
0

Înfășoară-l într-un hook numit wp_enqueue_scripts.

Exemplu:

add_action( 'wp_enqueue_scripts', function() {
    wp_enqueue_style('style', get_stylesheet_uri(), false, false, 'all');
    wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/script.js', true );
});
6 sept. 2020 13:13:28
1

Ceea ce a rezolvat această problemă pentru mine a fost descărcarea editorului clasic WordPress și a plugin-ului pentru widget-uri clasice.

17 dec. 2021 10:47:00
Comentarii

Pare că a rezolvat problema prin dezactivarea codului defect, nu prin repararea lui efectivă

Rup Rup
17 dec. 2021 13:15:55