WordPressサイトは、複数のユーザーで運営することができます。
複数のユーザーで運営しているサイトの場合、サイドエリアなどにユーザーの一覧を表示させたい場合が出てくるかと思います。
私も過去に何回かユーザー一覧を表示させるカスタマイズをご依頼いただきました。
このカスタマイズ、やり方を覚えてしまえば比較的簡単に行うことができます。
今回は、初心者の方でもユーザー一覧を表示できるように、ユーザー一覧を表示させる方法をご紹介します。
ユーザー一覧を表示する方法
数人のユーザーで運営しているサイトの場合、手書きでユーザーの一覧を設置してもよいかと思いますが、ユーザー数が多く、今後もユーザーが増加する場合、手書きの一覧は更新が面倒です。
こんな場合は、自動的にユーザー一覧が表示されるようにしておきましょう。
自動的にユーザー一覧を表示させるのは、【get_users()】を使えば、比較的簡単に実現できます。
ユーザー一覧を表示させたい箇所に以下のコードを設置してください。
<?php $users = get_users(array(
'orderby'=>ID,
'order'=>ASC,
)); ?>
<ul class="users_list">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<li>
<a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a>
</li>
<?php } ?>
</ul>
上記のコードを記載した箇所には、以下のようなコードが出力されます。
<ul class="users_list">
<li><a href="ユーザーアーカイブのURL">ユーザー名</a></li>
<li><a href="ユーザーアーカイブのURL">ユーザー名</a></li>
<li><a href="ユーザーアーカイブのURL">ユーザー名</a></li>
<li><a href="ユーザーアーカイブのURL">ユーザー名</a></li>
<li><a href="ユーザーアーカイブのURL">ユーザー名</a></li>
</ul>
このコードを設置すると、存在する全てのユーザーが一覧表示されます。
各ユーザーアーカイブページへのリンクつき。
ユーザーアーカイブとは、そのユーザーの投稿が一覧表示されるページのこと。
上記の一覧は、サイト上で以下のような見た目になります。
上記のリンクは、サンプルのため機能していません。
実際には、ユーザーアーカイブページにリンクされます。
上記のコードは、PHPコードです。
テーマ内では設置可能ですが、投稿や固定ページでは設置できません。
ユーザー一覧を固定ページで作成したい場合もあるかと思います。
そんな場合は、後述する方法【ユーザー一覧ページを作成する手順】で対応可能です。
特定のユーザーを一覧から除外する方法
先ほどのコードでは、全てのユーザーが一覧に表示されます。
場合によっては、一部のユーザーを表示させたくないことがあるかもしれません。
そんなときは、以下のコードを使いましょう。
<?php $users = get_users(array(
'orderby'=>ID,
'order'=>ASC,
'exclude' => 1
)); ?>
<ul class="users_list">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<li>
<a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a>
</li>
<?php } ?>
</ul>
赤文字部分が先ほどのコードとは異なっています。
'exclude' => 1
上記の数字(赤文字)は、ユーザーIDです。
ユーザーIDとは、ユーザー単位で振り分けられている数値。
ここに、一覧から除外したユーザーのユーザーIDを記述します。
除外したいユーザーのユーザーIDが【1】なら【1】と記述してください。
複数のユーザーを除外したい場合は、コードを次のように書き換えます。
'exclude' => array(ユーザーID,ユーザーID)
複数のユーザーIDを指定する場合は、ユーザーIDを【,】で区切って記述します。
最後のユーザーIDの後ろに【,】は不要です。
ユーザーIDの調べ方
上記のコードの中に記述するユーザーIDの調べ方を解説します。
ユーザーIDは、ユーザーの編集画面から調べることができます。
管理画面【ユーザー】にアクセスしてください。
IDを調べたいユーザーの編集画面を開きます。
ユーザー編集画面のURLに注目してください。
URLの中に【user_id=○】という文字列が含まれています。
この【○】の部分に表示されている数字が、そのユーザーのユーザーIDです。
ユーザー一覧のコンテンツをカスタマイズする方法
先ほどご紹介したユーザー一覧は、ユーザー名にリンクが付いただけのシンプルなものでした。もっと多くの情報を表示させたい場合もあるかと思います。
ここでは、ユーザー一覧のコンテンツをカスタマイズする方法をご紹介します。
全部はご紹介できないので、よく使うコンテンツをいくつかご紹介。
表示するコンテンツを管理している部分
最初に、先ほどご紹介したコードでコンテンツを管理している部分を解説します。
<?php $users = get_users(); ?>
<ul class="users_list">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<li>
<a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a>
</li>
<?php } ?>
</ul>
上記の赤文字部分が表示するコンテンツを管理している部分となります。
【<li>~</li>】の間に表示させるコンテンツを記述します。
上記を踏まえたうえで、以下をご覧ください。
コンテンツ1:アバターを表示する方法
WordPressでは、各ユーザーごとにアバターを登録することが可能です。
そのアバターをユーザー一覧に表示する方法をご紹介します。
アバターを表示させたい箇所に以下のコードを記述してください。
<?php echo get_avatar( $uid ,150 ); ?>
コードを記述した箇所にアバターが表示されます。
上記のコードで赤文字の部分があります。
この数値は【アバターのサイズ】を指定している部分です。
上記の場合、アバターは【150px×150px】で表示されます。
数値はサイトのレイアウトなどに合わせて変更してください。
コンテンツ2:プロフィール情報を表示する方法
WordPressのプロフィールでは、プロフィール編集画面から【プロフィール情報】を登録することができます。
上記の赤枠部分に登録した文章を表示させる方法をご紹介します。
プロフィール情報を表示させたい箇所に以下のコードを記述してください。
<?php echo $user->user_description ; ?>
コードを記述した箇所にプロフィール情報が表示されます。
アバターとプロフィール情報を表示させる場合のコード
ここまでに解説したアバターとプロフィール情報を表示させる場合のコードをご紹介します。
<?php $users = get_users(); ?>
<ul class="users_list">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<li>
<a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a>
<?php echo get_avatar( $uid ,150 ); ?>
<?php echo $user->user_description ; ?>
</li>
<?php } ?>
</ul>
赤文字の部分が、アバターとプロフィール情報を表示させるコードです。
上記のような要領で、表示させたい情報を追加することができます。
アバターやプロフィール情報の他にどのような情報が記載できるのか?
この疑問に対する回答は、次の項をご確認ください。
その他、取得できるユーザー情報のまとめ
【get_users()】で取得できる情報を以下にまとめます。
値 | 取得できる情報 |
---|---|
user_login | ログインID |
user_pass | パスワード |
user_nicename | ニックネーム |
user_email | メールアドレス |
user_url | ウェブサイト |
user_registered | 登録日時 |
display_name | ブログ上の表示名 |
first_name | 名 |
last_name | 性 |
nickname | ニックネーム |
description | プロフィール情報 |
user_level | ユーザーレベル |
admin_color | 管理画面のテーマ |
以下のようにすれば情報を取得することができます。
例:ウェブサイトを表示する場合
<?php echo $user->○○○○; ?>
上記の【○○○○】の部分を取得したい情報の値(上記の表の左列)に置き換えてください。
例:ニックネームを取得したければ【nickname】に置き換える。
セキュリティの関係上、サイト上に表示してはいけない情報もあります。
情報を表示させるときは、その情報が表示して良い情報なのかご確認ください。
ユーザー一覧ページを作成する手順
ここまでにご紹介したコードは固定ページでは利用できません。
固定ページでユーザー一覧ページを作成する場合は、以下の手順で対応可能です。
- 先ほどのコードを記述したPHPファイルを作成する。
- ユーザー一覧ページを固定ページで作成する。
- 作成したPHPファイルを固定ページにインクルードするための下準備をする。
- 作成したPHPファイルを固定ページにインクルード(読み込み)する。
- ユーザー一覧が表示できているか確認する
手順1:先ほどのコードを記述したPHPファイルを作成する
まずは、先ほどのコードを記述したPHPファイルを作成します。
FTPなどで、テーマフォルダの中にある【page.php】をPCにダウンロードしてください。
ファイルの拡張子が【.php】であれば、別のファイルでもかまいません。
ダウンロードしたファイルの名前を【users_list.php】に変更します。
ファイル名は半角英数字であればなんてもOKです。
【users_list.php】ファイルを開いて、中身を全て消してください。
先ほどご紹介したユーザー一覧を表示するコードを記述、ファイルを保存します。
上記の作業で、ユーザー一覧を表示するコードを記述したPHPファイルが作成できました。
FTPなどで【users_list.php】をテーマフォルダにアップロードします。
手順2:ユーザー一覧ページを固定ページで作成する
通常の手順で【固定ページ】を新規作成します。
ページのタイトルは任意のものでかまいません。
例:ユーザー一覧、投稿者一覧ページなど。
手順3:作成したPHPファイルを固定ページにインクルードするための下準備をする
個々で解説する内容は、以下のコンテンツで詳しく解説しています。
⇒ WordPressでPHPファイルをインクルードする方法【投稿+固定ページ対応】
以下の解説で分からないことがあれば、上記のコンテンツも参照してください。
以下のコードをfunctions.phpに記述して保存します。
//ショートコードを使ったphpファイルの呼び出し方法
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(STYLESHEETPATH . "/$file.php");
return ob_get_clean();
}
add_shortcode('myphp', 'my_php_Include');
このコピペだけで下準備は完了です。
手順4:作成したPHPファイルを固定ページにインクルード(読み込み)する
先ほど新規作成した固定ページの【テキストエディタ」に以下のコードを記述します。
【myphp file='users_list'】
実際にコードを記述するときは【】を[]に置き換えてください。
【users_list】の部分は、手順1で作成したPHPファイルのファイル名に変更してください。
コードが記述できたら固定ページを保存します。
手順5:ユーザー一覧が表示できているか確認する
最後に新規作成した固定ページにアクセスしてください。
ユーザー一覧が表示できていれば作業は完了です。
ユーザー一覧が作成できていない場合、手順1~4のどこかに不備がある可能性が高いです。
作業内容に誤りが無いか再チェックしてみましょう。
それでもうまくいかない場合は、お問い合わせからご相談ください。
ユーザー一覧の内容を変更したい場合
管理画面の【外観】⇒【テーマエディター】⇒【users_list.php】の内容を編集してください。
【users_list.php】は、手順1で作成したファイル名です。
固定ページの編集画面からは内容を編集できないので注意が必要です。
まとめ
WordPressサイトにユーザーの一覧を表示する方法をご紹介しました。
ユーザー一覧の表示は関数の【get_users()】を使えば簡単。
プラグインを使用する必要もありません。
今回のコンテンツには実際に使えるコードを記載しております。
コピーして使ってください。
コメントを残す