So zeigen Sie die Benutzerrolle an

So zeigen Sie die Benutzerrolle auf der Autorenseite an

Ich habe meine eigene Rolle (Gruppe) erstellt, also möchte ich die Benutzerrolle unterhalb der Post und auf der Autorenliste anzeigen.

Ich habe diesen Code versucht, aber nicht als Aufruf current_user und seine aktuelle Benutzerrolle in allen Autoren-Profil

roles; $user_role = array_shift($user_roles); if ($user_role == 'administrator') { echo 'Administrator'; } elseif ($user_role == 'editor') { echo 'Editor'; } elseif ($user_role == 'author') { echo 'Author'; } elseif ($user_role == 'contributor') { echo 'Contributor'; } elseif ($user_role == 'subscriber') { echo 'Subscriber'; } else { echo '' . $user_role . ''; } ?> 

Wie kann ich diesen Code ändern, um die tatsächliche Benutzerrolle und nicht die aktuelle Benutzerrolle anzuzeigen?

Solutions Collecting From Web of "So zeigen Sie die Benutzerrolle an"

Veränderung:

 $user_roles = $current_user->roles; 

mit

 $user = new WP_User( $user_id ); $user_roles = $user->roles; 

und die $ user_id sollte die tatsächliche Benutzer-ID angeben, die Rolle, die Sie versuchen, zu erhalten.

Aktualisieren,

Tut mir leid, ich habe gerade den Autor-Template-Teil gelesen, also probiere folgendes aus:

 //first get the current author whos page you are viewing if(isset($_GET['author_name'])) $curauth = get_user_by('slug', $author_name); else $curauth = get_userdata(intval($author)); //then get the user object with roles $user = new WP_User( $$curauth->ID ); $user_roles = $user->roles; .... 

Ich nehme an, Sie versuchen, die Rolle des Verfassers des Beitrags und nicht des aktuellen Benutzers, der die Autorenseite anzeigt, zu zeigen.

Nehmen wir an, Sie befinden sich in der Schleife:

 //get the post author's ID $user_id = get_the_author_meta( 'ID' ); //assume we are in The Loop $user_obj = get_userdata( $user_id ); if( !empty( $user_obj->roles ) ){ foreach( $user_obj->roles as $role ){ echo $role; } } 

oder, wenn Sie nur jedem Benutzer / Autor eine Rolle zuweisen, können Sie stattdessen den gesamten foreach Block ersetzen:

 echo $user_obj->roles[0];