2016-09-26 60 views
0

根據用戶的角色,我創建了3個導航菜單,所以我有一個用於訪客用戶,另一個用於批發,最後是一個好客導航菜單。取決於用戶角色的WordPress菜單

我試圖根據用戶在登錄時的角色來顯示它們。因此,當沒有登錄時guest用戶分別登錄時,其他兩個用戶分別登錄到每個帳戶。我也做了以下論據:

 <?php 
     if (is_user_logged_in('administrator')) {?> 
      <?php wp_nav_menu(array('menu' => 'guest-menu')); ?> 
     <?php 
     } else if (is_user_logged_in('wholesale_customer')) {?> 
      <?php wp_nav_menu(array('menu' => 'wholesale-menu')); ?> 
     <?php 
     } else if (is_user_logged_in('hospitality_customer')) {?> 
      <?php wp_nav_menu(array('menu' => 'hospitality-menu')); ?> 
     <?php 
     } else {?> 
      <?php wp_nav_menu(array('menu' => 'guest-menu')); ?> 
     <?php 
     } 
     ?> 

我創建了批發和招待費用戶帳戶通過我使用的是批發插件,爲用戶的關鍵是:wholesale_customer & hospitality_customer但不管它顯示來賓菜單?所以我的猜測是它要麼沒有超過第一個參數,要麼只是跳到最後。

+0

功能is_user_logged_in沒有參數https://developer.wordpress.org/reference/functions/is_user_logged_in/ –

+0

你可以嘗試從這個問題的答案來檢查用戶角色http://wordpress.stackexchange.com/questions/5047/how-to-check-if -a-user-in-a-specific-role –

回答

0

與感謝上面的球員,併爲他人尋找答案,請參閱我來實現工作的結果誰:

 <?php 

     global $current_user; 

     get_currentuserinfo(); 

     switch (true) { 
     case (user_can($current_user, "administrator")):?> 
      <?php wp_nav_menu(array('menu' => 'guest-menu')); 
     break; 
     case (user_can($current_user, "wholesale_customer")):?> 
      <?php wp_nav_menu(array('menu' => 'wholesale-menu')); 
     break; 
     case (user_can($current_user, "hospitality_customer"))?> 
      <?php wp_nav_menu(array('menu' => 'hospitality-menu')); 
     break; 
      default: 
      wp_nav_menu(array('menu' => 'guest-menu')); 
      break; 
     } 

     ?> 
2

試試這個,

$user = wp_get_current_user(); 

if (in_array('wholesale_customer', (array) $user->roles) { 
    wp_nav_menu(array('menu' => 'wholesale-menu')); 

} else if (in_array('hospitality_customer', (array) $user->roles)) { 
    wp_nav_menu(array('menu' => 'hospitality-menu')); 

} else { 
    wp_nav_menu(array('menu' => 'guest-menu')); 
} 
+0

嘿,謝謝你的迴應bu那怎麼會轉化成我想要實現的目標呢? – PhpDude

+0

我已經改變了答案檢查它。 –