WordPressで記事を投稿したユーザの権限グループが「寄稿者ユーザ」だったらユーザ情報を出力する

WordPressで記事を投稿したユーザの権限グループが「寄稿者ユーザ」だったらユーザ情報を出力する例です。

WordPressのバージョンは3.4.2で今回検証しています。

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

参考リンク

  

共有やブックマークなど

コメントは受け付けていません。