作成者ページにユーザーの役割を表示する方法。
自分の役割(グループ)を作成したので、投稿の下と作成者リストにユーザーの役割を表示したいと思います。
私はこのコードを試してみましたが、すべての作者のプロファイルにおいて、現在のユーザロールを呼び出していることと現在のユーザロールを表示していることとして動作していません
<?php
$user_roles = $current_user->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 '<strong>' . $user_role . '</strong>';
}
?>
現在のユーザーロールではなく、ユーザーの実際のロールを表示するようにこのコードを変更する方法を教えてください。
変化する:
$user_roles = $current_user->roles;
と
$user = new WP_User( $user_id );
$user_roles = $user->roles;
そして$ user_idはあなたが取得しようとしているロールを持つ実際のユーザーIDです。
更新、
申し訳ありません私はちょうど著者のテンプレートの一部を読んだのでこれを試してみてください:
//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;
....
現在の投稿者ページではなく、投稿の投稿者の役割を表示しようとしていると思います。
あなたがループの中にいると仮定して、以下をしてください:
//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;
}
}
または、各ユーザー/作成者に1つの役割のみを割り当てる場合は、foreach
ブロック全体を置き換える代わりに次の操作を実行できます。
echo $user_obj->roles[0];