为自定义 Wordpress 主题添加菜单支持

Sve*_*ven 4 wordpress wordpress-theming

我正在创建我的第一个 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' ) ); ?>
# [...]
Run Code Online (Sandbox Code Playgroud)

我的设置:

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

其他信息:

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

我在这里缺少什么?


编辑 #1

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

小智 8

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

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

register_nav_menus(
    array(
    'primary-menu' => __( 'Primary Menu' ),
    'secondary-menu' => __( 'Secondary Menu' )
    )
);
Run Code Online (Sandbox Code Playgroud)

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

if ( function_exists( 'register_nav_menus' ) ) {
    ...
}
Run Code Online (Sandbox Code Playgroud)