4

我正在创建我的第一个 Wordpress 主题,并且正在为菜单支持而苦苦挣扎:

我在functions.php中添加了一个自定义菜单并将其实现到我的header.php中,如下所示,但管理区域中的菜单选项没有显示!

# functions.php

<?php

    add_theme_support( 'menus' );

    add_action( 'init', 'register_my_menus' );

    function register_my_menus() {
        register_nav_menus(
            array(
                'primary-menu' => __( 'Primary Menu' ),
                'secondary-menu' => __( 'Secondary Menu' )
            )
        );
    }

?>

# header.php
# [...]
    <?php wp_nav_menu( array( 'theme_location' => 'primary-menu' ) ); ?>
# [...]

我的设置:

  • WordPress 版本 3.4.2
  • MAMP 开发环境
  • 没有插件

其他信息:

  • 菜单选项显示在其他模板中
  • 菜单在页面上正确呈现

我在这里想念什么?


编辑#1

我什至看不到管理菜单中的菜单选项(就像这里!

4

1 回答 1

9

几件事 - 你不需要 add_theme_support(); 也不是 add_action('init', 'register_my_menus')

直接调用 register_nav_menus 函数,如下所示:

register_nav_menus(
    array(
    'primary-menu' => __( 'Primary Menu' ),
    'secondary-menu' => __( 'Secondary Menu' )
    )
);

如果您愿意,还可以检查该功能是否存在。但是,如果它仅用于您自己的主题并且您知道它存在,那么它并不是真正需要的。

if ( function_exists( 'register_nav_menus' ) ) {
    ...
}
于 2012-09-27T08:36:29.137 回答