wp_enqueue_script wurde falsch aufgerufen

20

Ich weiß nicht wie, aber jetzt erhalte ich diesen Fehler:

Hinweis: wp_enqueue_style wurde falsch aufgerufen. Skripte und Stile sollten erst registriert oder in die Warteschlange gestellt werden, wenn die Hooks wp_enqueue_scripts, admin_enqueue_scripts oder login_enqueue_scripts aktiviert sind. Weitere Informationen finden Sie unter Debuggen in WordPress. (Diese Nachricht wurde in Version 3.3 hinzugefügt.) In wp-includes / functions.php in Zeile 3049

Hinweis: wp_enqueue_script wurde falsch aufgerufen. Skripte und Stile sollten erst registriert oder in die Warteschlange gestellt werden, wenn die Hooks wp_enqueue_scripts, admin_enqueue_scripts oder login_enqueue_scripts aktiviert sind. Weitere Informationen finden Sie unter Debuggen in WordPress. (Diese Nachricht wurde in Version 3.3 hinzugefügt.) In wp-includes / functions.php in Zeile 3049

Warnung: Header-Informationen können nicht geändert werden - Header, die bereits von (Ausgabe gestartet bei wp-includes / functions.php: 3049) in wp-login.php in Zeile 415 gesendet wurden

Warnung: Header-Informationen können nicht geändert werden - Header, die bereits von (Ausgabe gestartet bei wp-includes / functions.php: 3049) in wp-login.php in Zeile 427 gesendet wurden

Dies erhalte ich, wenn ich versuche, mich anzumelden ... Auf anderen Websites treten nur zwei erste Fehler auf. Ich versuche es zu beheben, aber ich kann nicht. Irgendwelche Vorschläge?

raiden
quelle
1
Das Notices scheint ziemlich selbsterklärend. Was hast du ausprobiert und was hat nicht funktioniert?
s_ha_dum
@s_ha_dum Ich habe viele Dinge ausprobiert, die ich bei Google gefunden habe. Gerade haben die Lösungen von toscho für mich funktioniert und ich kann mich in mein Admin-Panel einloggen nicht das gleiche wie es war. Ich
bekomme

Antworten:

15

Deaktivieren Sie alle Plugins und wechseln Sie zum Standarddesign. Es sollte jetzt weg sein.

Aktivieren Sie dann jedes Addon Schritt für Schritt, bis das Problem erneut auftritt. Sie kennen jetzt die Quelle, sagen wir ein Plugin.

Das Plugin ruft wahrscheinlich wp_enqueue_scriptzu früh auf. Suchen Sie alle Vorkommen dieser Funktion und stellen Sie sicher, dass sie an bestimmte Aktionen gebunden sind:

  • wp_register_script() sollte für die Aktion aufgerufen werden wp_loaded
  • wp_enqueue_script auf eine der Aktionen
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts oder
    • login_enqueue_scripts(siehe diesen Thread für Letzteres).
fuxia
quelle
Das Problem ist, dass ich mich nicht einloggen kann, weil ich auch diesen seltsamen Fehler mit Cookies bekomme. Fehler besagt, dass ich Cookies in meinem Browser blockiert habe, aber ich habe sie nicht blockiert ... Es ist so seltsam, weil alles, was ich heute getan habe, ein paar Zeilen zu style.css hinzugefügt hat, alles war gut, aber a Einige Stunden nachdem ich diese Fehler hatte.
Raiden
@raiden Dann benenne dein Plugin-Verzeichnis per FTP um, mache dasselbe für das aktuell aktive Theme.
fuxia
Jetzt kann ich mich in mein Panel einloggen ... danke! Aber jetzt bekomme ich eine Fehlermeldung mehr. Warnung: Header-Informationen können nicht geändert werden - Header, die bereits von (Ausgabe gestartet bei wp-includes / functions.php: 3049) in wp-includes / pluggable.php in Zeile 896
gesendet wurden
4

Basierend auf der Lösung von Gregory Schultz :

Binden Sie alle Ihre Skripte und Stile in eine Funktion ein und verknüpfen Sie diese Funktion mit Ihrer Zielaktion enqueue. 👇

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 - Vorderes Ende

admin_enqueue_scripts - Administrator Seite

login_enqueue_scripts - Loginseite

mein K
quelle
2

Der Grund dafür ist, dass diese Funktionen direkt aus der Datei functions.php aufgerufen werden, ohne eine Funktion zu verwenden. Finden Sie heraus, welche Zeilen in functions.php nicht in einer solchen Funktion enthalten sind, und fügen Sie sie hinzu.

Beispiel für Datumsauswahl:

-Statt dessen 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');

- Wir fügen das hinzu

    // Wir definieren die Funktion:
    Funktion MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Füge die Funktionen zur WP Ladeliste hinzu.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

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

    // Füge die Funktionen zur WP Ladeliste hinzu.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Hoffe, es funktioniert

Albert Sauqué
quelle
1

wp_enqueue_script()Dies bedeutet, dass es 3 "Endpunkte" gibt, für die wp_enqueue_scripts für das Frontend, login_enqueue_scripts für den Anmeldebildschirm und admin_enqueue_scripts für das Admin-Dashboard. Überprüfen Sie diesen Link .

Sie erhalten diesen Fehler, weil wp_enqueue_script()er nicht ordnungsgemäß aufgerufen wurde.

JMau
quelle
Ich verstehe, was da ist, weiß aber nicht, wie ich dieses "Update: Verwenden Sie stattdessen wp_enqueue_scripts" (implementieren?) Kann.
Raiden
es bedeutet , dass Sie verwenden müssen nur wp_enqueue_scriptsstatt , wp_print_stylesaber ich bezweifle , dass es zu Ihrem Fall in engen Zusammenhang steht. Es ist nur ein Beispiel für die Fehlerbehebung. In deinem Fall gibt es einige Funktionen in Plugins oder Themes, die missbraucht werden, wp_enqueue_script()sodass du diesen Fehler bekommst ... meine Vermutung.
JMau
Ich bekam 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.ich alle meine Skripte und Stile in eine Funktion eingewickelt und der Hinweis ging weg.
Gregory Schultz
Außerdem bekomme ich keine Fehler
Gregory Schultz
1

Anstatt alle Plugins einzeln zu deaktivieren oder die Codebasis für das Debuggen zu ändern, können Sie das Query Monitor- Plugin verwenden, um die Ursache dieses Fehlers einzugrenzen.

Wenn dieser Fehler in der Konsole angezeigt wird:

wp_register_style wurde falsch aufgerufen. Skripte und Stile sollten erst registriert oder in die Warteschlange gestellt werden, wenn die Hooks wp_enqueue_scripts, admin_enqueue_scripts oder login_enqueue_scripts aktiviert sind. Weitere Informationen finden Sie unter Debuggen in WordPress. (Diese Nachricht wurde in Version 3.3.0 hinzugefügt.)

In der letzten Spalte ( Component) sehen Sie das Plugin, das den Fehler auslöst. Führen Sie von dort aus eine Suche in diesem Plugin (oder Thema) durch, um das Problem zu finden und zu beheben.

Kevin Leary
quelle