使用WordPress注册菜单的标准方法是将其添加到functions.php:
function register_menu() {
register_nav_menu('main_menu', 'Main Menu');
}
add_action('init', 'register_menu');
但是为什么不直接从functions.php调用register_nav_menu()而不挂钩呢?
register_nav_menu('main_menu', 'Main Menu');
它工作正常,为什么还要打扰?
答案 0 :(得分:1)
第一个也是最常见的"一般"相关的是,在加载functions.php
时,wordpress尚未完全初始化,因此不一定"稳定"。对register_nav_menu()
之类的东西来说,这一点不太重要,但值得一提。
第二个原因是你不能删除已宣布的东西"松散地"与remove_action()
。在许多情况下,这虽然不一定是普遍适用的,但更为重要。
考虑到将来您或其他人正在根据您正在开发的主题创建子主题。没有一个好方法让子主题停止主题宣布菜单。这只是一个例子,还有其他一些例子可以阻止另一个组件做某事可能很重要。
在首次开发主题时,这些问题似乎并不是特别相关,但随着时间的推移,这些类型的最佳实践问题成为维护的真正头痛问题。