この記事は2年以上前に書かれたものです。
情報が古い可能性があります。
情報が古い可能性があります。
コードと実行例
single.php
<?php while ( have_posts() ) : the_post(); ?>
<?php
// 記事を投稿した人のユーザIDからユーザ情報の取得
$user = new WP_User( get_the_author_meta( 'ID' ) );
// 寄稿者だったら表示名を出力
if( in_array( 'contributor', $user->roles ) ) {
echo 'この記事は"' . $user->display_name . '"さんが投稿しました。';
}
?>
<?php endwhile; ?>
実行例
この記事は"Tsuyoshi."さんが投稿しました。
一応タグっぽい書き方に直したバージョンもどうぞ。結果は同じです。
single.php
<?php while ( have_posts() ) : the_post(); ?>
<?php // 記事を投稿した人のユーザIDからユーザ情報の取得 ?>
<?php $user = new WP_User( get_the_author_meta( 'ID' ) ); ?>
<?php // 寄稿者だったら表示名を出力 ?>
<?php if( in_array( 'contributor', $user->roles ) ) : ?>
この記事は"<?php echo $user->display_name ?>"さんが投稿しました。
<?php endif; ?>
<?php endwhile; ?>
権限グループが「管理者」の場合
<?php if( in_array( 'administrator', $user->roles ) ) : ?>
権限グループが「投稿者」の場合
<?php if( in_array( 'author', $user->roles ) ) : ?>
権限グループが「編集者」の場合
<?php if( in_array( 'editor', $user->roles ) ) : ?>
権限グループが「購読者」の場合
<?php if( in_array( 'subscriber', $user->roles ) ) : ?>
※まあ購読者は記事の投稿は出来ないですけど一応。
補足
ちなみに存在しないユーザを取得しても、$userの中身は以下のようになっていたのでエラーにはならないかと思います。
object(WP_User)[2252]
public 'data' => null
public 'ID' => int 0
public 'caps' =>
array
empty
public 'cap_key' => null
public 'roles' =>
array
empty
public 'allcaps' =>
array
empty
public 'filter' => null