Wie erhalte ich die Rolle des aktuell angemeldeten Benutzers in WordPress?

Lesezeit: 1 Minute

Wie erhalte ich die Rolle des aktuell angemeldeten Benutzers in WordPress?

Angenommen, Sie haben die Benutzer-ID ($user_id), sollte so etwas funktionieren:

$user = new WP_User( $user_id );

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

Holen Sie sich die Benutzer-ID aus Ihrer Sitzung.

Wenn Sie die Benutzer-ID nicht kennen, hilft Ihnen diese Funktion (fügen Sie sie in die Datei functions.php Ihres Themas ein).

function get_user_role() {
    global $current_user;

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

    return $user_role;
}

Und dann können Sie in Ihrer Vorlage die Benutzerrolle abrufen, indem Sie get_user_role() aufrufen.

Fand es hier.

  • Diese Methode ist nicht anwendbar, wenn ich zwei oder mehr Rollen in einem Benutzer hinzugefügt habe. Der Grund dafür ist, dass nur eine einzelne oder erste Rolle zurückgegeben wird, die dem Benutzer hinzugefügt wird, verschoben mit der PHP-Funktion array_shift.

    – Ryan S

    6. März 2014 um 15:27 Uhr

  • Beachten Sie, dass $current_user immer vorhanden und ist standardmäßig mit leeren Attributen gefüllt. Obwohl dieser Code so aussieht, als würden Sie Probleme beim Objektzugriff und Index bekommen, funktioniert er tatsächlich. Die zurückgegebene Rolle für einen neuen Besucher lautet NULL.

    – kontur

    15. März 2019 um 8:53 Uhr

  • Für zukünftige Leser: Die Verwendung von global sollte so weit wie möglich vermieden werden. Halten Sie Ihren Code vorhersehbar

    – Martijn

    16. Mai um 10:59 Uhr

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;

}

<?php global $current_user; //get the current user
echo $current_user->roles[0]); //display the current user's role
?>

1402070cookie-checkWie erhalte ich die Rolle des aktuell angemeldeten Benutzers in WordPress?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy