it-swarm.com.de

Auf welchem ​​Hook soll ich register_nav_menu (s) aufrufen?

Ich habe register_nav_menus() gesehen, das heißt:

  • am after_setup_theme
  • auf init
  • "lose" in functions.php eingefügt

ohne erkennbare Änderung der Funktionalität.

Mit welchem ​​Hook soll ich diese Funktion aufrufen?

5
Isaac Lubow

Zunächst sollten Sie die Funktionen lose nicht in functions.php registrieren, da Sie sie nicht entfernen können (mit remove_action). Es kann auch Debug-Fehler verursachen, da WP möglicherweise noch nicht stabil ist. Mit einem Hook stellen Sie sicher, dass WP stabil genug ist, um Ihren Code auszuführen, und was Sie verwenden müssen, wurde geladen.

Lesen Sie die Antwort in den Wordpress-Foren , um weitere Informationen zu erhalten


Um zu entscheiden, welchen Haken Sie verwenden möchten, lesen Sie zuerst diese Antwort .

Der Hauptunterschied zwischen den beiden:

  • Der Benutzer ist bei after_setup_theme nicht authentifiziert
  • Der Benutzer wird bei init authentifiziert.

Der Hook after_setup_theme wird daher offensichtlich vor init ausgeführt. Dies können Sie in der Aktionsreferenz nachlesen.

Laut der Wordpress Codex-Seite auf after_setup_theme:

Dieser Hook wird während jedes Seitenladens aufgerufen, nachdem das Thema initialisiert wurde. Es wird im Allgemeinen verwendet, um grundlegende Setup-, registration - und init-Aktionen für ein Thema auszuführen.


Da Sie Menüs registrieren, würde ich vorschlagen, after_setup_theme zu verwenden. Der Wordpress Codex for register_nav_menu() verwendet in einem der Beispiele auch den Hook after_setup_theme.

6
Kaspar Lee

Sie können sie verwenden, sobald sie verfügbar sind, d. H. Sobald functions.php geladen ist. Deshalb haben Sie so viele verschiedene Optionen gesehen.

Ich würde empfehlen, auf "defacto" zu bleiben - mit dem Haken after_setup_theme

1
TheDeadMedic

Die Dokumente für register_nav_menu zeigen ein Beispiel mit dem Hook after_setup_theme, also würde ich das verwenden.

after_setup_theme

Dieser Hook wird während jedes Seitenladens aufgerufen, nachdem das Thema initialisiert wurde. Es wird im Allgemeinen verwendet, um grundlegende Setup-, Registrierungs- und Init-Aktionen für ein Thema auszuführen.

... den after_setup_theme-Hook, der vor dem init-Hook läuft. Der Init-Hook ist für einige Funktionen zu spät, z.

1
Cai