web-dev-qa-db-fra.com

Affichage du rôle attribué à l'utilisateur actuel

Existe-t-il une section sur le panneau d'administration de mon installation WordPress qui affiche uniquement le rôle de l'utilisateur actuellement connecté?

Par exemple, je sais que je dispose d’autorisations d’administrateur parce que je sais cela, mais je ne peux le voir confirmé nulle part.

De plus, si je me configure en tant qu'éditeur, comment vérifier rapidement que je suis définitivement connecté en tant qu'éditeur? (à part juste "savoir").

Ce serait vraiment bien de savoir que si vous faites 10 choses à la fois et que vous perdez la piste.

Peut-être qu’il serait agréable d’afficher cela après le "Comment ça va ..." en haut à droite.

MODIFIER

Avant que quiconque n'intervienne et mentionne le panneau Utilisateurs. Oui, je peux voir qu'il y a la colonne Rôle (car je suis un administrateur), mais quelqu'un qui était juste un contributeur ne pourrait pas le voir, n'est-ce pas?

2
mikelovelyuk

Comme vous l'avez suggéré, voici comment afficher les rôles en regard du nom d'utilisateur dans la barre d'administration:

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' );
4
TheDeadMedic

Vous vérifiez le rôle de l'utilisateur actuel et ajoutez la valeur à la barre d'administration, comme l'élément de profil.

Pour obtenir le rôle de l'utilisateur actuel, utilisez la petite fonction ci-dessous:

/**
 * Returns the translated role of the current user. 
 * No role, get false.
 *
 * @return string The translated name of the current role.
 **/
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;
}

Également un exemple pour ajouter la valeur de la fonction à la barre d'administration, dans mon exemple, une nouvelle entrée à l'élément de compte dans la barre d'administration.

add_action( 'admin_bar_menu', 'fb_change_admin_bar_item' );
/**
 * Add item to the admin bar, to the my-account item.
 *
 * @param Array $wp_admin_bar
 */
function fb_change_admin_bar_item( $wp_admin_bar ) {

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

Voir le résultat en capture d'écran, beaucoup plus facile à comprendre le but de l'exemple.  enter image description here 

En guise d'alternative au deuxième exemple, cela ajoute le nom du rôle au nom d'utilisateur, dans le titre par défaut dans la barre d'administration.

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 );
}

Ici aussi, une capture d'écran du résultat.

 enter image description here 

3
bueltge

J'utilise simplement:

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

Pour afficher le rôle d'utilisateur actuel.

0
mondi