我試圖根據用戶角色顯示兩個不同的菜單。針對不同用戶角色的不同菜單
我已經建立了所謂的「客戶」使用下面的代碼(在functions.php中)的新角色:
add_role('client', 'Client', array(
'read' => true,
)
);
,我必須使用此代碼(在functions.php中)兩個不同的菜單:
function register_my_menus() {
register_nav_menus(
array(
'client-navigation' => __('Client Navigation'),
'staff-navigation' => __('Staff Navigation'),
)
);
}
add_action('init', 'register_my_menus');
這裏是我想用來調用任何客戶端導航或導航的工作人員(在header.php文件)的代碼:
<?php
if (current_user_can('client')){
//menu for client role
wp_nav_menu(array('theme-location' => 'client-navigation'));
}else{
//default menu
wp_nav_menu(array('theme-location' => 'staff-navigation'));
}
?>
我也嘗試在wp_nav_menu之前加上'echo'並將theme-location
更改爲menu
並使用菜單名稱,但它始終顯示staff-navigation
菜單。
你能解釋什麼不起作用嗎?你沒有看到菜單嗎?兩次相同的菜單?你有菜單項目添加到這兩個菜單?你是否以客戶身份登錄?我相信'current_user_can'接受一個不是角色的能力。 – Jrod
不,它總是顯示員工導航菜單,我在每個菜單中有不同的鏈接,我使用兩個瀏覽器(1管理員登錄和1個客戶端登錄)來測試 – NickMcB