J'ai vu diversement register_nav_menus()
appelé:
after_setup_theme
init
functions.php
sans changement apparent de fonctionnalité.
Quel hook devrais-je utiliser pour appeler cette fonction?
Tout d’abord, vous ne devez pas enregistrer les fonctions loose dans functions.php
car vous ne pouvez pas les supprimer (avec remove_action
). Cela peut également provoquer des erreurs de débogage, car WP pourrait ne pas encore être stable. En utilisant un hook, vous vous assurez que WP est suffisamment stable pour exécuter votre code et que ce que vous avez besoin d'utiliser a été chargé.
Découvrez la réponse sur les Wordpress Forums pour plus d'informations.
Pour décider quel hook utiliser, commencez par vérifier this answer .
La principale différence entre les deux:
after_setup_theme
init
.Le hook after_setup_theme
est donc évidemment exécuté avant init
, comme vous pouvez le voir dans la référence Action
Selon la page Wordpress Codex sur after_setup_theme
:
Ce hook est appelé lors de chaque chargement de page, après l’initialisation du thème. Il est généralement utilisé pour effectuer les actions de configuration de base, registration , et init pour un thème.
Puisque vous enregistrez des menus, je suggérerais d'utiliser after_setup_theme
. Le Wordpress Codex pour register_nav_menu()
utilise également le hook after_setup_theme
dans l'un des exemples.
Vous pouvez les utiliser dès qu’ils sont disponibles, c’est-à-dire dès que functions.php
est chargé, ce qui explique pourquoi vous avez vu tant d’options différentes.
Je recommanderais de rester avec la méthode "defacto" - en utilisant le hook after_setup_theme
Les docs pour register_nav_menu
montrent un exemple utilisant le hook after_setup_theme
, donc je l’utiliserais.
Ce hook est appelé lors de chaque chargement de page, après l’initialisation du thème. Il est généralement utilisé pour effectuer des actions de configuration, d’enregistrement et d’initialisation de base pour un thème.
... le hook after_setup_theme, qui s'exécute avant le hook init. Le hook d'initialisation est trop tardif pour certaines fonctionnalités, telles que l'indication de miniatures de publication de support.