2016-09-26 26 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

我已经改变了答案检查它。 –