首先,您不应该在functions.php 因为您无法删除它们(使用remove_action). 它还可能导致调试错误,因为WP可能还不稳定。通过使用钩子,您可以确保WP足够稳定,可以运行您的代码,并且您需要使用的内容已经加载。
在上查看答案Wordpress Forums 有关详细信息
要决定使用哪个钩子,请首先查看this answer.
两者之间的主要区别:
用户未在进行身份验证after_setup_theme
用户在以下位置获得身份验证:init.的
after_setup_theme 因此,挂钩显然是在
init, 您可以在
Action Reference根据上的Wordpress Codex页面after_setup_theme:
在初始化主题后,在每次页面加载期间调用此挂钩。通常用于执行基本设置,registration, 和初始化主题的操作。
既然您正在注册菜单,我建议您使用after_setup_theme. 这个Wordpress Codex 对于register_nav_menu() 还使用after_setup_theme 勾选其中一个示例。