web-dev-qa-db-fra.com

wp_enqueue_script n'a pas été appelé correctement

Je ne sais pas comment mais maintenant j'obtiens cette erreur:

Remarque: wp_enqueue_style a été appelé de manière incorrecte. Les scripts et les styles ne doivent pas être enregistrés ou mis en file d'attente avant les hooks wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. S'il vous plaît voir le débogage dans WordPress pour plus d'informations. (Ce message a été ajouté dans la version 3.3.) Dans wp-includes/functions.php à la ligne 3049

Remarque: wp_enqueue_script a été appelé de manière incorrecte. Les scripts et les styles ne doivent pas être enregistrés ou mis en file d'attente avant les hooks wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. S'il vous plaît voir le débogage dans WordPress pour plus d'informations. (Ce message a été ajouté dans la version 3.3.) Dans wp-includes/functions.php à la ligne 3049

Avertissement: impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie démarrée sur wp-includes/functions.php: 3049) dans wp-login.php à la ligne 415

Avertissement: impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie démarrée à wp-includes/functions.php: 3049) dans wp-login.php à la ligne 427

C'est ce que je reçois lorsque j'essaie de me connecter ... Sur d'autres sites, je n'ai que deux premières erreurs. J'essaie de le réparer mais je ne peux pas. Aucune suggestion?

16
raiden

Désactivez tous les plugins et passez au thème par défaut. Il devrait être parti maintenant.

Puis activez chaque addon pas à pas, jusqu’à ce que le problème revienne. Vous connaissez la source maintenant, disons un plugin.

Le plugin appelle probablement wp_enqueue_script trop tôt. Recherchez toutes les occurrences de cette fonction, puis assurez-vous qu'elles sont liées à des actions spécifiques:

  • wp_register_script() devrait être appelé pour l'action wp_loaded
  • wp_enqueue_script sur l'une des actions
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts ou
    • login_enqueue_scripts (voir ce fil de discussion pour ce dernier).
13
fuxia

Basé sur Gregory Schultz solution:

Enveloppez tous vos scripts et styles dans une fonction et raccordez cette fonction à votre action enqueue cible. ????

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- frontal

admin_enqueue_scripts- page d'administration

login_enqueue_scripts- page de connexion

3
myk

La raison en est que ces fonctions sont appelées directement à partir du fichier functions.php, sans utiliser de fonction. Recherchez les lignes du fichier functions.php qui ne figurent pas dans une fonction comme celle-ci et ajoutez-les.

Exemple pour datepicker:

Au lieu de cela dans 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');

-Nous ajoutons ceci

 // Nous définissons la fonction: 
 Function MYTHEME_scripts () {
 Wp_enqueue_script ('jquery-ui-datepicker'); 
} 
 [. .____.] // Ajoute les fonctions à WP liste de chargement. 
 Add_action ('wp_enqueue_scripts', 'MYTHEME_scripts'); [.________.]. {
 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') ;;.____.]} 
 
 // Ajoute les fonctions à WP liste de chargement. 
 Add_action ('wp_enqueue_style', 'MYTHEME_styles'); 

Esperons que ça marche

2
Albert Sauqué

Cela signifie qu'il existe 3 "noeuds finaux" pour wp_enqueue_script() qui sont wp_enqueue_scripts pour le frontend, login_enqueue_scripts pour l'écran de connexion, admin_enqueue_scripts pour le tableau de bord admin. Vérifiez ce lien .

Vous obtenez cette erreur car wp_enqueue_script() a été appelé de manière non appropriée.

1
JMau

Plutôt que de désactiver tous vos plugins un par un ou de modifier votre base de code pour le débogage, vous pouvez utiliser le Query Monitor plugin pour préciser la source de cette erreur.

Lorsque vous voyez cette erreur signalée dans la console:

wp_register_style n'a pas été appelé correctement. Les scripts et les styles ne doivent pas être enregistrés ou mis en file d'attente avant les hooks wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. S'il vous plaît voir le débogage dans WordPress pour plus d'informations. (Ce message a été ajouté dans la version 3.3.0.)

La dernière colonne (Component) vous indiquera le plug-in qui déclenche l'erreur. À partir de là, effectuez une recherche à l'intérieur de ce plugin (ou de ce thème) pour rechercher et corriger le problème.

1
Kevin Leary