无论我传递给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。主题是从头开始构建的超级基础。
答案 0 :(得分:0)
您按菜单ID调用菜单(您说的是5),但是您是按主题位置注册的。
尝试 wp_nav_menu(array('theme_location'=>'rightsidebar'));
答案 1 :(得分:0)
wp_nav_menu回显结果而不是返回结果。如果要返回菜单字符串,请尝试使用:
$args['echo'] = false;