• 2022.09.27
  • WordPress
  • 飯島

WordPressに登録されたユーザー情報の一覧を作成する方法

WordPressのサイトは複数のユーザーで運営できます。そのためどんなユーザーがサイトを運営しているのか?どんなユーザーがサイトの記事を書いているのか?を一目で分かるページがあると便利です。

「こんな面白い人がたくさん運営しているサイトなら、もっと記事を読んでみてみたい」とユーザー情報の一覧ページでサイトに興味を持ってくれる人もいます。ということで今回は下記の画像のように、ユーザー情報の一覧を作成する方法を解説します。

get_usersで筆者情報の一覧を作成できる

WordPressに登録されたユーザー情報の一覧は「get_users」を使うと表示できます。下記のコードはget_usersを使ったコードになります。ユーザー一覧を設置したい箇所に下記のコードを記載してみてください。

<?php $args = get_users(array(
    'orderby'      => 'ID',
    'order'        => 'ASC'
));
?>
<ul class="user_list">
    <?php foreach ($args as $args) {
        $uid = $args->ID; ?>
        <li class="user_profile">
            <div class="user_avatar_text_box">
                <div class="user_list_avatar">
                    <?php echo get_avatar($uid, 160); ?>
                </div>
                <div class="user_list_text">
                    <a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>">
                        <div><?php echo $args->display_name; ?></div>
                    </a>
                    <div class="author_info"><?php echo $args->description; ?></div>
                    <div class="author_other_article">
                        <a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>">
                            →この筆者の他の記事も読む
                        </a>
                    </div>
                </div>
            </div>
            <ul class="author_sns_list">
                <li><a href="<?php echo $args->twitter; ?>"><i class="fa-brands fa-square-twitter fa-4x"></i></a></li>
                <li><a href="<?php echo $args->Facebook; ?>"><i class="fa-brands fa-square-facebook fa-4x"></i></a></li>
                <li><a href="<?php echo $args->Instagram; ?>"><i class="fa-brands fa-square-instagram fa-4x"></i></a></li>
            </ul>
        </li>
    <?php } ?>
</ul>

では上記のコードを順に解説していきます。

get_usersのパラメーターを設定する

<?php $args = get_users(array(
    'orderby'      => 'ID',
    'order'        => 'ASC'
));
?>

get_usersでは様々なパラメーターを取得できます。orderbyはソート順を決める項目を指定できます。上記ではソートの順番を「ID」で指定しています。これにより、先に発行したユーザーのIDから順にユーザー情報が並べられます。

orderは並び順が昇順か降順を指定するものです。ASCなら昇順、DESCなら降順を指定できます。

get_usersでは、この2つ以外にも様々なパラメーターを設定できます。興味がある人は下記のWordPress Codexのページを参考にしてみてください。

関数リファレンス/get users – WordPress Codex 日本語版[1]

foreachで繰り返し処理をする

<?php foreach ($args as $args) {
 $uid = $args->ID; ?>

今回はユーザー情報の一覧を作りたいので繰り返し処理が必要です。foreachを使うとユーザー情報を並べられます。「$uid = $args->ID;」はユーザー情報からIDを取り出して、変数$uidに格納するという処理をしています。

画像やユーザーID、プロフィール情報を出力する

画像やユーザー名、プロフィール情報はWordPress管理画面にある「ユーザー」→「プロフィール」画面の内容から出力できます。以下にこの「プロフィール」の画像やユーザー名、プロフィール情報の内容を表示する方法も解説します。

画像を出力する方法

<?php echo get_avatar($uid, 160); ?>

このコードによってユーザーの画像が出力されます。160と設定しているので、幅、高さが160の画像が表示されます。表示させたい好みの数字を設定してみてください。

変数「$uid」にはユーザー情報のIDが格納されています。get_avatarでは、ユーザーIDからの画像を取得する関数なので、ユーザーIDも指定する必要があります。これによりユーザーごとに設定された画像が表示されるようになります。

ユーザーIDを表示する方法

 <a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>">
         <div><?php echo $args->display_name; ?></div>
 </a>

ユーザーIDは「display_name」で表示できます。そしてリンクに設定してある「<?php echo get_bloginfo(“url”) . ‘/?author=’ . $uid ?>」は、ユーザーごとの個別ページにアクセスできるリンクになっています。

ユーザーごとの個別ページには、そのユーザーが執筆した記事の一覧を載せるといいですね。そのユーザーが書いた記事を気に入った人が、他の記事も読みたいと考えたときに記事を見つけやすくなります。

 <div class="author_other_article">
     <a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>">
        →この筆者の他の記事も読む
     </a>
 </div>

また「この筆者の他の記事も読む」にも、ユーザーごとの個別ページへのリンクも貼って置くとよいですね。

プロフィール情報を表示する

 <div class="author_info"><?php echo $args->description; ?></div>

「<?php echo $args->description; ?>」では、プロフィール情報を表示できます。

SNSボタンを表示する

ユーザー情報のなかにSNSのリンクを貼っておきたい人も多いでしょう。ただこのSNSのリンクを設置するのには一工夫が必要です。

これまでWordPress管理画面にある「プロフィール」の情報を出力してきましたが、デフォルトの状態だと、SNSのURLを入力する項目がありません。そこでまずは管理画面のプロフィールの項目にSNSのURLを入力する項目を作成します。

管理画面のプロフィールの項目を増やす方法

function.phpに以下のようなコードを記載すると、管理画面のプロフィールに好きな項目を増やせます。

function my_user_meta($wb)
{
//項目の追加
$wb['twitter'] = 'twitter';
$wb['Facebook'] = 'Facebook';
$wb['Instagram'] = 'Instagram';
return $wb;
}
add_filter('user_contactmethods', 'my_user_meta', 10, 1);

上記のコードを設置すると以下のように、SNS用の項目が増えました。この項目ごとに、各ユーザーのSNSへのリンクを記載しましょう。

SNSのリンクを設置する

SNSのリンクは以下のコードを記載すれば設置できます。

<ul class="author_sns_list">
   <li><a href="<?php echo $args->twitter; ?>"><i class="fa-brands fa-square-twitter fa-4x"></i></a></li>
    <li><a href="<?php echo $args->Facebook; ?>"><i class="fa-brands fa-square-facebook fa-4x"></i></a></li>
   <li><a href="<?php echo $args->Instagram; ?>"><i class="fa-brands fa-square-instagram fa-4x"></i></a></li>
            </ul>

<?php echo $args->twitter; ?>という記述がありますが、これはさきほどfunction.phpに記述した「twitter」を差しています。そのためWordPress管理画面のプロフィールの「twitter」の項目の内容にもリンクしています。これでtwitterへのリンクが可能になりました。FacebookやInstagramへのリンクも同じように設置してみてください。

GIV株式会社は、埼玉県川越市にあるWEB(ホームページ)制作会社です。お困りごと、ご相談、お気軽にご連絡ください。お問い合わせは、こちらから。

GIV / Design / Security / People
お問い合わせ
Contact