この記事は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