今日は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