WordPressで登録ユーザーの情報を取得して一覧で出力する方法

WordPressで登録ユーザーの情報を取得して一覧で出力する方法

WordPressで登録ユーザーの情報を取得して一覧で出力する方法

WordPressに登録されているユーザーの情報を取得して、ユーザー名やメールアドレスなどのプロフィールをテーマ内に一覧で出力する方法をご紹介いたします。

WordPressで登録ユーザーの情報を取得して一覧で出力する方法

ユーザーの一覧を出力するには、get_users関数を使います。基本形は以下の通りです。

<?php
$args = array(
  'blog_id'      => $GLOBALS['blog_id'], //ブログID(マルチサイト)
  'role'         => '', //ユーザー権限
  'meta_key'     => '', //プロフィールの項目名(wp_usermetaテーブルのmeta_key)
  'meta_value'   => '', //プロフィール項目の値
  'meta_compare' => '', //比較演算子
  'meta_query'   => array(), //カスタムフィールドの条件指定
  'date_query'   => array(), //WP_Date_Queryオブジェクトとして処理される配列
  'include'      => array(), //IDを含むユーザーのみを抽出
  'exclude'      => array(), //IDを含まないユーザーのみを抽出
  'orderby'      => 'login', //ソートの基準
  'order'        => 'ASC', //表示順
  'offset'       => '', //先頭から指定した数のユーザーを除外
  'search'       => '', //検索キーワード
  'number'       => '', //ユーザー数の上限
  'fields'       => 'all', //配列に含めるフィールド
  'who'          => '' //指定したユーザー権限よりも上位の権限を抽出
);
$users = get_users( $args );
foreach ( $users as $user ) {
  echo '<span>' . esc_html( $user->user_email ) . '</span>';
}
?>

$argsに抽出するユーザーの条件を代入し、get_users関数で取得します。取得したユーザーの情報をループで出力しています。ループ部分で出力できる情報は、こちらの記事をご参照ください。

カスタムフィールドの値でユーザーを絞り込みたい場合は、meta_queryで条件指定します。例えば、Advanced Custom Fieldsで追加したカスタムフィールドの値でユーザーを絞り込む場合は、以下のように記述します。

<?php
$args = array(
  'meta_query' => array( array(
    'key' => 'カスタムフィールド名',
    'value' => 'カスタムフィールドの値',
    'compare' => 'LIKE',
  ) ),
);
$users = get_users( $args );
?>

Advanced Custom Fieldsで追加したカスタムフィールドの値は、単純に文字列だけが保存されるわけではないので、「’compare’ => ‘LIKE’」であいまい検索をしています。

全ユーザーの一覧を出力するサンプルコード

抽出するユーザーの条件を指定せず、全ユーザーの一覧を出力したい時は、以下のようにしてもOKです。

<?php
  $users = get_users( array('orderby'=>ID,'order'=>ASC) ); //ユーザー情報の取得(ユーザーIDの昇順)
?>
  <ul class="userlist">
    <?php foreach($users as $user): $user_id = $user->ID; ?>
      <li>
        <a href="<?php echo esc_url(home_url( '/?author=' )).$user_id; ?>">
          <div class="userlist__img">
            <?php echo get_avatar( $user_id,100 ); //ユーザー画像 ?>
          </div>
          <div class="userlist__detail">
            <h3 class="userlist__name"><?php echo $user->display_name; //ブログ上の表示名 ?></h3>
            <div class="userlist__description"><?php echo wpautop($user->user_description); //プロフィール情報 ?></div>
          </div>
        </a>
      </li>
    <?php endforeach; ?>
  </ul>
<?php endif; ?>

あとがき

色んな条件で絞り込めるようになっているので便利ですね。

ユーザーの一覧ページを作成したい時は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です