根据用户类型从多个主导航菜单中选择一个主导航菜单

时间:2012-06-09 作者:handicop

目标:我想为两种不同类型的用户使用自定义菜单。例如,我希望商户用户能够使用商户菜单,并且所有者可以使用所有者菜单。

我没有足够的声誉,这张图片是在管理菜单面板,其中有自定义菜单选择的主题位置。http://dl.dropbox.com/u/6520543/custom%20menu.jpg

wp\\u terms保存具有term\\u id的自定义菜单的名称。wp\\u term\\u taxonomy保存来自wp\\u terms的term\\u id,taxonomy为“nav\\u menu”,每个自定义菜单下保存的菜单项数为count列“function register\\u custom\\u nav”和“register\\u nav\\u menus”起作用,但我找不到它如何为用户选择自定义菜单的线索。如果我可以在代码或db中的某个地方找到它加载所选自定义菜单的位置,我可以在用户登录时更改。我想它肯定在DB中选择自定义菜单id,但我找不到。

有人知道怎么做吗????

1 个回复
SO网友:Bainternet

当我需要为不同的用户提供不同的菜单时,我会为每个用户类型创建一个角色(在您的情况下MerchantOwner) 我为每个角色提供了不同的视图菜单功能,例如:

add_role(\'merchant\', \'Merchant\', array(
    \'merchant_menu\' => true // would allow the merchant to view merchant menu
));
add_role(\'owner\', \'Owner\', array(
    \'owner_menu\' => true // would allow the owner to view owner menu
));
然后我只需创建3个菜单,而不是按位置调用wp\\u nav\\u menu(),而是按名称调用它:

if ( current_user_can(\'merchant_menu\') ) { //current user is a merchant
    wp_nav_menu(array(\'menu\' => \'Merchant Menu Name\' ));
}elseif(current_user_can(\'owner_menu\') ){ //current user is an owner
    wp_nav_menu(array(\'menu\' => \'Owner Menu Name\' ));
}else{//any one else get the default menu
    wp_nav_menu(array(\'menu\' => \'Default Menu\' ));
}

结束