WordPress 記事の投稿者情報を取得する方法まとめ

Pocket

WordPressでブログやポータルサイトを作成する場合、現在の記事の投稿者IDやauthor.phpへのリンクなどを取得する必要が出てきます。

また、投稿者名だけでなく投稿者のウェブサイトやメールアドレス、画像なども取得したいという場合もあります。そんなときにすぐに対応できるように使えるテンプレートタグをまとめておきたいと思います。

投稿者IDを取得する方法

現在の記事の投稿者IDを取得するにはget_users()を使用する方法、$postを使用する方法があります。

<?php
//現在の記事の投稿者情報を取得
$blogusers = get_users();

//ブログIDを指定して投稿者情報をゲット
$blogusers = get_users('blog_id=1');


//IDを出力する
echo $blogusers[0]->ID;
?>

//ループ中に$postを使用してIDを取得
<?php $author_id = $post->post_author; ?>

get_users()で取り出せる情報は以下の通り。このタグはループ外でも使えるので、投稿者の最新記事一覧を表示したい場合などに利用できます。さらに詳しい情報は公式codexのこちらへ(英語)。

  • ID : ユーザーのid
  • user_login : ユーザーの権限?
  • user_pass : パスワード
  • user_nicename : ニックネーム
  • user_email : メールアドレス
  • user_url : ユーザーのウェブサイトURL
  • display_name : 名前

現在の記事の投稿者情報を取得する方法

現在の記事の投稿者情報を取得するために、ループ中に使用できるタグがいろいろ用意されています。また1つのタグ(関数)で全ての投稿者情報を取得することも可能。ではそれぞれ見ていきましょう。

//投稿者名を取得して表示する

この記事の投稿者: <?php the_author(); ?>

//投稿者名を表示せず取得するだけ
<?php $author = get_the_author(); ?>

//投稿者名とwebサイトのリンクを表示

Written by: <?php the_author_link(); ?>

//投稿者の投稿数を表示

この投稿者の記事数は <?php the_author_posts(); ?> です。

//投稿者のアーカイブ(author.php)のリンクをつけて表示

Other posts by <?php the_author_posts_link(); ?>

//現在の投稿者の情報から必要なものを取り出す

このユーザーのアドレスは <?php the_author_meta('user_email'); ?> です。

//表示せず変数に格納する
<?php $user_email = get_the_author_meta('user_email'); ?>

the_author_meta()で取り出せる情報は以下の通り。”の部分に入れることで必要な情報を取り出せます。

  • user_login
  • user_pass
  • user_nicename
  • user_email
  • user_url
  • user_registered
  • user_activation_key
  • user_status
  • display_name
  • nickname
  • first_name
  • last_name
  • description
  • jabber
  • aim
  • yim
  • user_level
  • user_firstname
  • user_lastname
  • user_description
  • rich_editing
  • comment_shortcuts
  • admin_color
  • plugins_per_page
  • plugins_last_view
  • ID

指定した投稿者の情報を取得する方法

ループ外で投稿者情報を取得するには先ほどと同じ、the_author_meta()を使います。ループ外では投稿者(ユーザー)のIDを入れる必要があります。取り出せる情報は上記のリストと同じ。

//ループ外で投稿者情報を取得する
<?php the_author_meta( $field, $userID ); ?>

//使用例、ID5のユーザーの名前を取得
<?php the_author_meta( 'display_name', 5 ); ?>

投稿者一覧のリストを取得する方法

トップページや投稿者一覧ページで全ユーザーのリストを取得、表示したい場合はwp_list_authors()を使うと便利です。ただし、このタグではアーカイブページへのリンクが取れないので、リンクも欲しい場合はget_users()を使ってループを回しましょう。

また、wp_list_authors()で使えるパラメータなどはこちら(英語)で確認できます。

//リストを取得して表示
<?php $args = array(
    'orderby'       => 'id', 
    'order'         => 'DESC', 
    'number'        => 3,
    'show_fullname' => true ); ?>

<?php wp_list_authors( $args ); ?>

//get_users()でループ回す
<?php $blogusers = get_users(); foreach ($blogusers as $user): ?>

  <?php if($user->ID !==1): //ここで管理者を排除 ?>

  <li>
    <a href="<?php echo get_bloginfo(url).'/?author='.$user->ID; ?>">
      <?php echo $user->display_name; ?>
    </a>
  </li> |

  <? endif; ?>

<?php endforeach; ?>

投稿者のプロフィール画像の設定と取得方法

投稿者のプロフィールで名前やリンクなどを取得することができますが、プロフィール写真なども同時に出力したい場合もあります。そんなときに使えるタグがget_avatar()。投稿者のIDと画像サイズを指定するだけで簡単に使用することができます。

//IDを指定したユーザーのプロフィール画像を取得
<?php get_avatar($author_id, 80); ?>

このタグを使うときに一緒にインストールしておきたいのがSimple Local Avatarsというプラグイン。これをインストールすればユーザーの編集画面から簡単に画像をアップロードできます。
wordpressでプロフィール画像を追加する

まとめ

ここまでで投稿者情報はほぼ全て取得できると思います。wordpressでは投稿者情報以外にカテゴリーやタグの取得、表示も欠かすことができないものです。

そちらについては以下のリンク先でまとめましたので参考にしていただきたいと思います。

最後までご覧いただきありがとうございました。