WordPress register_nav_menu突然停止在本地工作

时间:2010-09-09 19:24:59

标签: wordpress mamp

好的,这是一个很大的问题。这是交易:

我在本地运行的MAMP Pro上安装了50多个WordPress。对于其中一些我使用local / whatever,对于其他人我将虚拟主机设置为whatever.local /。 WordPress从来没有遇到任何问题。昨天,安装了WP 3.0.1的副本(新鲜,直接关闭服务器),并开始模板化。今天,我回到它继续,首先注册默认导航。我在functions.php中添加了必要的行:

add_theme_support( 'menus' );

add_action('init', 'register_custom_menu');

    function register_custom_menus() {
        register_nav_menu('primary_menu', __('Header Menu'));
        register_nav_menu('404_menu', __('404 Menu'));
    }

很好,对吗?我也尝试过register_custom_menu,一次一个。在WordPress中,不显示默认菜单。我试过了:

  • 激活其他主题,重新激活原始
  • 尝试二十 - 尽管在代码中注册了“主菜单”,但仍然没有自定义导航,所以它不是我的函数.php
  • 尝试了另一个我在本地运行的主题(在原来的位置完美运行),仍然没有导航
  • 删除整个数据库并重新安装WP
  • 删除整个目录,重新下载WP,重新安装
  • 删除虚拟主机并从localhost / whatever
  • 开始工作

所以,我有很多其他WP网站使用导航注册工作得非常好,但我不能再创建了?我完全失败了。

任何输入都会受到赞赏,现在我的智慧结束了。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

三件事:

  1. 您应该将菜单注册挂钩到'after_setup_theme',而不是'init'
  2. 您无需致电add_theme_support(),因为register_nav_menu()负责处理此事。
  3. 您可以使用register_nav_menus()一次性处理所有菜单。
  4. 然而,这是不起作用的最大原因是因为你没有调用你的功能。 add_action上的回调应为'register_custom_menus'(注意复数)。拼写必须与函数声明匹配。这就是我建议你重写的方法:

    add_action('after_setup_theme', 'register_custom_menus');
    
    function register_custom_menus() {
        register_nav_menus( array(
            'primary_menu' => __('Header Menu'),
            '404_menu' => __('404 Menu') ) );
    }
    
相关问题