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.