wp_enqueue_script è stato chiamato in modo errato


20

Non so come, ma ora ricevo questo errore:

Avviso: wp_enqueue_style è stato chiamato in modo errato. Gli script e gli stili non devono essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts. Per ulteriori informazioni, consultare Debug in WordPress. (Questo messaggio è stato aggiunto nella versione 3.3.) In wp-Includes / Functions.php sulla linea 3049

Avviso: wp_enqueue_script è stato chiamato in modo errato. Gli script e gli stili non devono essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts. Per ulteriori informazioni, consultare Debug in WordPress. (Questo messaggio è stato aggiunto nella versione 3.3.) In wp-Includes / Functions.php sulla linea 3049

Avvertenza: impossibile modificare le informazioni dell'intestazione - intestazioni già inviate da (output avviato su wp-Includes / Functions.php: 3049) in wp-login.php sulla riga 415

Avvertenza: impossibile modificare le informazioni dell'intestazione - intestazioni già inviate da (output avviato da wp-Includes / Functions.php: 3049) in wp-login.php sulla riga 427

Questo è quello che ottengo quando provo ad accedere ... Su altri siti, ho solo due primi errori. Provo a risolverlo ma non ci riesco. Eventuali suggerimenti?


1
I Notices sembrano piuttosto auto esplicativo. Cosa hai provato e cosa non ha funzionato?
s_ha_dum,

@s_ha_dum Ho provato molte cose che ho trovato su Google ... proprio ora le soluzioni di toscho hanno funzionato per me e posso accedere al mio pannello di amministrazione, ma ciò che posso vedere è che qualcosa non va nel caricamento dello stile, perché font è non è lo stesso di prima. Continuo a ricevere questo errore:
raiden

Risposte:


15

Disabilita tutti i plugin e passa al tema predefinito. Dovrebbe essere andato ora.

Quindi abilitare ciascun componente aggiuntivo passo dopo passo, fino a quando il problema non si ripresenta. Ora conosci la fonte, diciamo un plugin.

Il plugin chiama probabilmente wp_enqueue_scripttroppo presto. Trova tutte le occorrenze di quella funzione, quindi assicurati che siano legate ad azioni specifiche:

  • 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 o
    • login_enqueue_scripts(vedi questo thread per quest'ultimo).

Il problema è che non riesco ad accedere perché ho anche questo strano errore con i cookie. L'errore dice che ho bloccato i cookie nel mio browser, ma non li ho bloccati ... È così strano perché tutto quello che ho fatto oggi è stato aggiungere alcune righe a style.css, tutto andava bene, ma un poche ore dopo ho avuto quegli errori.
raiden

@raiden Quindi rinominare la directory del plugin per FTP, fare lo stesso per il tema attualmente attivo.
fuxia

Ora posso accedere al mio pannello ... grazie! ma ora ricevo un altro errore Attenzione: impossibile modificare le informazioni di intestazione - intestazioni già inviate da (output avviato a wp-Includes / Functions.php: 3049) in wp-Includes / pluggable.php sulla linea 896
raiden

4

Basato sulla soluzione di Gregory Schultz :

Avvolgi tutti gli script e gli stili in una funzione e aggancia quella funzione enqueueall'azione target . 👇

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 - fine frontale

admin_enqueue_scripts - pagina di amministrazione

login_enqueue_scripts - pagina di login


2

Il motivo per cui ciò sta accadendo è perché queste funzioni vengono chiamate direttamente dal file Functions.php, senza usare una funzione. Scopri quali linee in Functions.php non si trovano all'interno di una funzione come questa e aggiungile.

Esempio per datepicker:

-Invece a ciò 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');

-Abbiamo aggiunto questo

    // Definiamo la funzione:
    funzione MYTHEME_scripts () {
    wp_enqueue_script ( 'jquery-ui-datepicker');
    }

    // Aggiunge le funzioni all'elenco di caricamento di WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

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

    // Aggiunge le funzioni all'elenco di caricamento di WP.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Spero funzioni


1

Significa che ci sono 3 "endpoint" per i wp_enqueue_script()quali 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 .

Questo errore wp_enqueue_script()viene visualizzato perché non è stato chiamato correttamente.


Capisco cosa c'è, ma non so come (implementare?) Questo "La correzione: utilizzare invece wp_enqueue_scripts."
raiden

significa che devi solo usare wp_enqueue_scriptsinvece di wp_print_stylesma dubito che sia legato al tuo caso. È solo un esempio di risoluzione dei problemi. Nel tuo caso ci sono alcune funzioni nei plugin o nel tema che usano in wp_enqueue_script()modo improprio, quindi ottieni questo errore ... suppongo.
JMau,

Stavo ottenendo 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 avvolto tutti i miei script e stili in una funzione e l'avviso è andato via.
Gregory Schultz,

Oltre a ciò, non ricevo errori
Gregory Schultz,

1

Anziché disabilitare tutti i plug-in uno a uno o modificare la base di codice per eseguire il debug, è possibile utilizzare il plug-in Query Monitor per restringere l'origine di questo errore.

Quando vedi questo errore segnalato nella console:

wp_register_style è stato chiamato in modo errato. Gli script e gli stili non devono essere registrati o accodati fino agli hook wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts. Per ulteriori informazioni, consultare Debug in WordPress. (Questo messaggio è stato aggiunto nella versione 3.3.0.)

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.