2009-09-22 7 views

ответ

13

Предполагая, что у вас есть идентификатор пользователя ($ user_id) что-то, как это должно работать:

$user = new WP_User($user_id); 

if (!empty($user->roles) && is_array($user->roles)) { 
    foreach ($user->roles as $role) 
     echo $role; 
} 

Получить идентификатор пользователя из сеанса.

+0

Спасибо, это работает для меня. – Ravi

7

Если вы не знаете, идентификатор пользователя, эта функция поможет вам (поместить его в файл functions.php темы)

function get_user_role() { 
    global $current_user; 

    $user_roles = $current_user->roles; 
    $user_role = array_shift($user_roles); 

    return $user_role; 
} 

А потом, в шаблоне вы можете получить роль пользователя по телефону get_user_role().

Найдено here.

+0

Этот метод не применим, если у меня есть две или несколько ролей, добавленных пользователю, причина в том, что он возвращает только одну или первую роль, добавляемую пользователю, сдвинутую с использованием функции array_shift PHP. –

0
function get_role_by_id($id) { 

    if (!is_user_logged_in()) { return false; } 

    $oUser = get_user_by('id', $id); 
    $aUser = get_object_vars($oUser); 
    $sRole = $aUser['roles'][0]; 
    return $sRole; 

} 
Смежные вопросы