wp_enqueue_script è stato chiamato in modo errato

6 mar 2014, 21:54:16
Visualizzazioni: 84.9K
Voti: 33

Non so come ma ora sto ricevendo questo errore:

Notice: wp_enqueue_style è stato chiamato in modo errato. Script e stili non dovrebbero essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts, o login_enqueue_scripts. Si prega di consultare il Debug in WordPress per maggiori informazioni. (Questo messaggio è stato aggiunto nella versione 3.3.) in wp-includes/functions.php alla riga 3049

Notice: wp_enqueue_script è stato chiamato in modo errato. Script e stili non dovrebbero essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts, o login_enqueue_scripts. Si prega di consultare il Debug in WordPress per maggiori informazioni. (Questo messaggio è stato aggiunto nella versione 3.3.) in wp-includes/functions.php alla riga 3049

Warning: Impossibile modificare le informazioni dell'header - headers già inviati da (output iniziato in wp-includes/functions.php:3049) in wp-login.php alla riga 415

Warning: Impossibile modificare le informazioni dell'header - headers già inviati da (output iniziato in wp-includes/functions.php:3049) in wp-login.php alla riga 427

Questo è quello che ottengo quando provo ad accedere... Su altri siti, ho solo i primi due errori. Ho provato a correggerlo ma non ci riesco. Qualche suggerimento?

2
Commenti

I Notice sembrano abbastanza autoesplicativi. Cosa hai provato e cosa non ha funzionato?

s_ha_dum s_ha_dum
6 mar 2014 22:06:16

@s_ha_dum Ho provato molte cose che ho trovato su Google... proprio ora la soluzione di toscho ha funzionato per me e posso accedere al pannello di amministrazione, ma quello che vedo è che qualcosa non va con il caricamento degli stili, perché il font non è lo stesso di prima. Continuo a ricevere questi errori:

raiden raiden
6 mar 2014 22:35:59
Tutte le risposte alla domanda 7
3
19

Disattiva tutti i plugin e passa al tema predefinito. Il problema dovrebbe essere risolto.

Quindi riattiva ogni estensione passo dopo passo, finché il problema non si ripresenta. A questo punto avrai individuato la fonte, ad esempio un plugin.

Probabilmente il plugin chiama wp_enqueue_script troppo presto. Trova tutte le occorrenze di questa funzione e assicurati che siano collegate a specifiche azioni:

  • wp_register_script() dovrebbe essere chiamato per l'azione wp_loaded
  • wp_enqueue_script su una delle azioni
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts oppure
    • login_enqueue_scripts (vedi questa discussione per quest'ultimo caso).
6 mar 2014 22:09:51
Commenti

Il problema è che non riesco ad accedere perché ottengo anche questo strano errore con i cookie. L'errore dice che ho bloccato i cookie nel browser, ma non li ho bloccati... È davvero strano perché tutto quello che ho fatto oggi è stato aggiungere poche righe a style.css, tutto funzionava bene, ma poche ore dopo ho avuto questi errori.

raiden raiden
6 mar 2014 22:12:00

@raiden Allora rinomina la directory del tuo plugin via FTP, fai lo stesso per il tema attualmente attivo.

fuxia fuxia
6 mar 2014 22:13:05

Ora riesco ad accedere al pannello... grazie! Ma ora ottengo un altro errore: 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

Basato sulla soluzione di Gregory Schultz:

Incorpora tutti i tuoi script e stili in una funzione e collega quella funzione all'azione enqueue desiderata.

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 (area pubblica)

admin_enqueue_scripts — pannello di amministrazione

login_enqueue_scripts — pagina di login

28 giu 2018 09:13:07
Commenti

Questo sicuramente aiuta, grazie :)

jrran90 jrran90
29 nov 2020 16:29:32
0

Invece di disabilitare tutti i tuoi plugin uno per uno o modificare il codice per eseguire il debug, puoi utilizzare il plugin Query Monitor per individuare la fonte di questo errore.

Quando vedi questo errore riportato nella console:

wp_register_style è stato chiamato in modo errato. Gli script e gli stili non dovrebbero essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts. Consulta la sezione Debugging in WordPress per maggiori informazioni. (Questo messaggio è stato aggiunto nella versione 3.3.0.)

L'ultima colonna (Component) ti indicherà il plugin che sta causando l'errore. Da lì, effettua una ricerca all'interno di quel plugin (o tema) per trovare e correggere il problema.

10 lug 2018 19:47:19
1

Il motivo per cui questo accade è perché queste funzioni vengono chiamate direttamente dal file functions.php, senza utilizzare una funzione. Trova quali righe nel file functions.php non sono all'interno di una funzione come questa e aggiungile.

Esempio per il datepicker:

-Invece di questo in 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');

-Aggiungiamo questo

// Definiamo la funzione:
function MYTHEME_scripts() {
    wp_enqueue_script('jquery-ui-datepicker');
}
    
// Aggiungiamo le funzioni alla lista di caricamento di 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');
}
    
// Aggiungiamo le funzioni alla lista di caricamento di WP.
add_action( 'wp_enqueue_scripts', 'MYTHEME_styles' );
23 gen 2019 21:35:32
Commenti

Non esiste un hook wp_enqueue_style.
La soluzione migliore e più pulita, quando il problema appare sul sito web e non nell'admin, è quella di @Usman Ahmed

Ludwig Ludwig
6 mag 2021 01:24:26
4

Significa che ci sono 3 "endpoint" per wp_enqueue_script() che sono wp_enqueue_scripts per il frontend, login_enqueue_scripts per la schermata di login, admin_enqueue_scripts per la dashboard di amministrazione. Controlla questo link.

Ricevi questo errore perché wp_enqueue_script() è stato chiamato in modo improprio.

6 mar 2014 22:06:22
Commenti

Capisco cosa c'è scritto, ma non so come (implementare?) questa soluzione "La correzione: Usa wp_enqueue_scripts invece."

raiden raiden
6 mar 2014 22:26:28

significa che devi semplicemente usare wp_enqueue_scripts invece di wp_print_styles ma dubito che sia correlato al tuo caso. È solo un esempio di risoluzione dei problemi. Nel tuo caso ci sono alcune funzioni nei plugin o nel tema che fanno un uso improprio di wp_enqueue_script() quindi ottieni questo errore... questa è la mia ipotesi.

JMau JMau
6 mar 2014 22:37:18

Ricevevo 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. Ho raggruppato tutti i miei script e stili in una funzione e l'avviso è scomparso.

Gregory Schultz Gregory Schultz
24 mag 2018 03:24:58

Oltre a ciò, non ricevo errori

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

Incorporalo in un hook chiamato wp_enqueue_scripts.

Esempio:

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 set 2020 13:13:28
1

Ciò che ha risolto questo problema per me è stato scaricare l'editor classico di WordPress e il plugin dei widget classici

17 dic 2021 10:47:00
Commenti

Sembra che sia stato risolto disattivando il codice difettoso, piuttosto che correggerlo effettivamente

Rup Rup
17 dic 2021 13:15:55