こんにちは、私です。Webサイトをリニューアルして約2週間が経ちましたが、掲載した様々なブログ記事はご覧いただけましたでしょうか。
今回は、前回の私の記事(WordPressのユーザーアイコンとしてGravatarを利用する)で紹介した「Gravatar」に関連するお話第二弾です。「Gravatar」に登録したアイコンをWordPressテーマに表示してみましょう。
早速実装します
今回、Wordpressテーマに書き込んだPHPコードは以下の通りです。リバースのテーマでは、sidebar.phpに書きました!
コピペするだけでリバースのブログのサイドバーと同じようなユーザー一覧機能が実装できます!
<?php $users = get_users( array('orderby'=>none,'order'=>ASC) ); ?> <?php foreach($users as $user) { $uid = $user->ID; ?> <dl id="<?php echo $user->user_login ; ?>"> <dt><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo get_avatar( $uid ); ?></a></dt> <dd><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a></dd> </dl> <?php } ?>
特別なことは何もしていないのですが、私のように何もわからずWordPressのテーマを構築し始めた誰かのために、そして何よりも私自身の備忘録の為に、このコードに1記事費やすことをお許しください。
1行目 ユーザーリストを取得、並び順を指定
$users = get_users( array('orderby'=>none,'order'=>ASC) );
まずは、ユーザーリスト全体に関する設定を記述します。
$users = get_usersでユーザーリストを取得
‘orderby’=>none,’order’=>ASCでリストの並び順を指定しています。
この設定だと、ユーザーIDのアルファベット昇順でリストが表示されます。
2行目 ループを開始
foreach($users as $user) {
ループ開始の指示を出しています。
ここから、一人ひとりのユーザーに関する記述の開始です。
3行目 取得したユーザーのIDを読み込む
$uid = $user->ID;
ループで取得したユーザーのIDを読み込みます。
「$uid」という箱に「$user->ID;」を入れるというイメージです。今後「$uid」を指定すると、「$user->ID;」の内容が出力されるようになっています。
4〜7行目 出力部分
<dl id="<?php echo $user->user_login ; ?>"> <dt><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo get_avatar( $uid ); ?></a></dt> <dd><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a></dd> </dl>
実際にHTMLとして吐き出される出力部分です。
$uidで3行目で読み込まれたユーザーIDの吐き出しを行っています。
<?php echo get_avatar( $uid ); ?>でimgタグを、<?php echo $user->display_name ; ?>でユーザー名を吐き出しています。
8行目 終了
<?php } ?>
もちろん、開始したループを終了させるのを忘れてはいけません。
私も初めてコードを書いたときは終了タグを忘れて、エラーを出しまくっていました。
基本的なことですが、だからこそきちんと確認しましょう。
いかがでしたか?
Gravatarでのアイコンの登録後は思ったより簡単にユーザ情報の取得・出力ができることがお分かりいただけたかと思います。
また、Gravatarはデフォルトでアイコンにオンマウスするとユーザーのプロフィールが表示されるようにリバースのサイトでは以下のCSSを使用して非表示にしています。
.grav-clone,.grav-inner,.grav-tag{display:none;}
ここもPHPで制御したいな〜と思っていたのですが、やはり難しい!
まだまだ修行が足りませんね。
PHPで制御する良い方法を見つけたら、またGravatarのアイコンに関する記事を書こうと思います。
皆さんも良い方法を見つけたら教えてくださいね😉