wp_nav_menu()始终为null

时间:2012-01-05 21:26:10

标签: wordpress

无论我传递给wp_nav_menu的参数是什么,它总是空白(NULL)。

以下是我在functions.php中注册导航支持的方法:

function mytheme_addmenus() {
    add_theme_support( 'nav-menus' );
    if ( function_exists( 'register_nav_menus' ) ) {
        register_nav_menus(
            array(
              'rightsidebar' => 'Right Sidebar Menu'
            )
        );
    }
}
add_action( 'init', 'mytheme_addmenus' );

然后我在管理员中创建一个新菜单,并将其分配到“右侧边栏菜单”位置。菜单ID为5,名称为test。

以下都不返回任何内容(确切地说是NULL)。我在sidebar.php中调用它:

wp_nav_menu('menu=test');

wp_nav_menu(array('menu' => 'test'));

wp_nav_menu($a = array('menu' => 'test'));

wp_nav_menu('menu_id=5');

wp_nav_menu('menu=5');

wp_nav_menu('menu=rightsidebar');

然而,当我调用以下内容时,我会得到一个包含菜单元数据的有效对象:

wp_get_nav_menu_object('test')

很明显'test'是一个有效的menu =参数。

我错过了什么吗?请帮忙!

PS。 Wordpress版本3.3。主题是从头开始构建的超级基础。

2 个答案:

答案 0 :(得分:0)

您按菜单ID调用菜单(您说的是5),但是您是按主题位置注册的。

尝试 wp_nav_menu(array('theme_location'=>'rightsidebar'));

答案 1 :(得分:0)

wp_nav_menu回显结果而不是返回结果。如果要返回菜单字符串,请尝试使用:

$args['echo'] = false;