Afișarea rolului atribuit utilizatorului curent

28 sept. 2015, 13:06:59
Vizualizări: 26.2K
Voturi: 2

Există vreo secțiune în panoul de administrare al instalării mele WordPress care să afișeze ce rol are utilizatorul curent conectat?

De exemplu, știu că am permisiuni de administrator pentru că știu acest lucru, dar nu pot vedea această confirmare nicăieri.

De asemenea, dacă mă setez ca Editor, cum pot verifica rapid că sunt cu siguranță conectat ca Editor? (în afară de simplul fapt că "știu").

Ar fi foarte util să știi acest lucru în cazul în care faci 10 lucruri simultan și pierzi evidența.

Poate ar fi frumos să se afișeze după mesajul "Salut..." din colțul din dreapta sus.

MODIFICARE

Înainte ca cineva să menționeze panoul Utilizatori. Da, pot vedea că există coloana Rol (pentru că sunt administrator), dar cineva care ar fi doar un Contributor nu ar putea vedea asta, corect?

1
Comentarii

Este foarte ciudat că WordPress nu afișează rolul utilizatorului acestuia

Marco Panichi Marco Panichi
2 oct. 2018 09:48:24
Toate răspunsurile la întrebare 3
0

După cum ai sugerat, iată cum poți afișa rolurile lângă numele de utilizator în bara de administrare:

function wpse_203917_admin_bar_menu( $wp_admin_bar ) {
    if ( ! $node = $wp_admin_bar->get_node( 'my-account' ) )
        return;

    $roles = wp_get_current_user()->roles;

    $node->title .= sprintf( ' (%s)', implode( ', ', $roles ) );

    $wp_admin_bar->add_node( $node );
}

add_action( 'admin_bar_menu', 'wpse_203917_admin_bar_menu' );
28 sept. 2015 13:17:20
4

Verificați rolul utilizatorului curent și adăugați valoarea în bara de administrare, similar cu elementul de profil.

Pentru a obține rolul utilizatorului curent, utilizați funcția mică de mai jos:

/**
 * Returnează rolul tradus al utilizatorului curent.
 * Fără rol, returnează false.
 *
 * @return string Numele tradus al rolului curent.
 **/
function fb_get_current_user_role_fixed() {
    global $wp_roles;

    $current_user = wp_get_current_user();
    $roles = $current_user->roles;
    $role = array_shift( $roles );

    return isset( $wp_roles->role_names[ $role ] ) ? translate_user_role( $wp_roles->role_names[ $role ] ) : FALSE;
}

De asemenea, un exemplu pentru a adăuga valoarea din funcție în bara de administrare, în exemplul meu o nouă intrare în elementul cont din Bara de Administrare.

add_action( 'admin_bar_menu', 'fb_change_admin_bar_item' );
/**
 * Adaugă un element în bara de administrare, în elementul my-account.
 *
 * @param Array $wp_admin_bar
 */
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $args = array(
        'id'     => 'user_role',
        'title'  => __( 'Rol:' ) . ' ' .     fb_get_current_user_role_fixed(),
        'parent' => 'my-account' 
    );
    $wp_admin_bar->add_node( $args );
}

Vedeți rezultatul în captura de ecran, mult mai ușor de înțeles scopul exemplului. descriere imagine

Ca alternativă, al doilea exemplu, care adaugă numele rolului la numele utilizatorului, pe titlul implicit din bara de administrare.

add_action( 'admin_bar_menu', 'fb_change_admin_bar_item' );
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $node = $wp_admin_bar->get_node( 'my-account' );

    if ( ! $node ) {
        return $wp_admin_bar;
    }

    $node->title .= ' ' . fb_get_current_user_role_fixed();

    $wp_admin_bar->add_node( $node );
}

De asemenea, aici o captură de ecran a rezultatului.

descriere imagine

28 sept. 2015 13:34:10
Comentarii

Bine. Deci nu există nimic încorporat de care să știi deja?

mikelovelyuk mikelovelyuk
28 sept. 2015 13:35:37

Corect, nucleul nu afișează rolul pentru fiecare utilizator.

bueltge bueltge
28 sept. 2015 13:41:31

În ce fișier(e) trebuie să pun toate acestea?

mikelovelyuk mikelovelyuk
29 sept. 2015 17:01:12

Un plugin personalizat este soluția potrivită.

bueltge bueltge
29 sept. 2015 22:07:47
0

Eu pur și simplu folosesc:

global $current_user; echo array_shift($current_user->roles);

Pentru a afișa rolul utilizatorului curent.

26 nov. 2018 11:58:29