WordPress Logo

今日はWordPressで登録されているユーザーの一覧を表示する方法を紹介します。

最も簡単なのはテンプレートタグの「wp_list_authors」を使う方法です。

<?php wp_list_authors(); ?>

本当に簡単なんですが、これだと単にユーザー名と投稿へのリンクがリスト表示されるだけなので、今回の意図とはちょっと外れるんですよね。

テンプレートタグ/wp list authors : https://wpdocs.osdn.jp/テンプレートタグ/wp_list_authors

ここで求めているのはユーザーの編集画面で入力したプロフィール情報やプロフィール写真も含め、自由にユーザー情報を出力する方法です。

……というワケで、今回は以下のコードを使います。
テンプレートの任意の箇所に記述しましょう。

<?php $users = get_users( array('orderby'=>ID,'order'=>ASC) ); ?>
<div class="authors">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<div class="author-profile">
	<span class="author-thumbanil"><?php echo get_avatar( $uid ,300 ); ?></span>
	<span class="author-name"><?php echo $user->display_name ; ?></span>
	<span class="author-description"><?php echo $user->user_description ; ?></span>
	<span class="author-link"><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?>の記事一覧</a></span>
</div>
<?php } ?>
</div>

基本的には、管理者・編集者・投稿者など、ユーザーの権限に関わらず全ユーザーを表示します。

テンプレートタグの「get_users」を使っているので、フィルタリングやソートも簡単です。
例えば「ユーザーIDが『12』と『34』は除外」したいなら、get_users の引数を次のように書き換えます。

$users = get_users( array('orderby'=>ID,'order'=>ASC,'exclude'=>array(12,34)) );

その他、テンプレートタグ「get_users」の使い方は公式の WordPress Codex を見るのが手っ取り早いですね。

関数リファレンス/get users : https://wpdocs.osdn.jp/関数リファレンス/get_users