- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
Gravatar の使い方
目次
Gravatar とは?
Gravatar (Globally Recognized Avatar) とは、広い範囲で利用できるアバターです。Gravatar はアイコンであり、フォーラム、チャット、ウェブサイトのような仮想現実上のオンライン・コミュニティの中で、そのユーザーの身代わりとなって、他のユーザーと自分自身を区別できるようにします。
トム・ワーナー(Tom Werner)によって開発された Gravatar を使えば、複数のウェブサービス上で共通するアバターを持つことができます。アバターは、通常、80×80ピクセルのユーザーが作成した画像です。
Gravatar は基本的にアバターと同じものですが、1つのサーバーで管理され、MD5 アルゴリズムによって暗号化されたユーザーのメールアドレスによって呼び出されます。そのため、利用者は訪れたフォーラムやブログごとにアバターを設定する代わりに、どこでも同じアバターを利用できるようになります。
Gravatarは、Gravatar WordPress Plugin を利用するか、index.php
、comments.php
、comments-popup.php
といったテンプレートファイルに記述することで、簡単に WordPress の中で使うことができます。
Gravatar を作成する
Gravatar は、サーバーに動的にリクエストされる画像リソースです。リクエスト URL をセグメント別に、以下に示します。まず、URL は常に次のように始まります:
http://www.gravatar.com/avatar.php?
さらに、gravatar_id というパラメータが必ず続きます。その値は、リクエストされたユーザーのメールアドレスを16進の MD5 ハッシュで暗号化したもので、すべての空白文字は省かれ、大文字と小文字は区別されません。
gravatar_id=279aa12c3326f87c460aa4f31d18a065
さらに、[G | PG | R | X]
というレーティング最高値を示す、オプションの rating
パラメータが付け加えられることもあります。
&rating=R
Gravatar は、利用者がレーティングを決めることができるように、レーティングチェックサービスも提供しています。
オプションの size
パラメータには、Gravatar の幅と高さを指定します。有効な値の範囲は1から80です。オリジナルの Gravatar の画像が80を超えている場合は、表示される画像がバイキュービック(bicubic)方式で、再サンプリングされて解像度が下げられます。
&size=40
オプションのdefault
パラメータには、リクエストされたメールアドレスがgravatarと連携していない場合や Gravatar がrating
パラメータよりも高いレーティングの場合に返される特定のフル URL、コード化された URL、または GIF、JPEG や PNG 画像などが含まれるプロトコルを指定します。
&default=http%3A%2F%2Fwww.somesite.com%2Fsomeimage.jpg
オプションの border
パラメータには、Gravatar に描かれる1ピクセルの境界線を16進数の値で指定します。指定される値は、6文字の16進文字列(例:赤の場合は FF0000
)か、省略形の3文字の16進文字(例えば赤のための F00
)のどちらかになります。
&border=FF0000
WordPressでGravatarsを使う
なお、WordPress 2.5には、Gravatar 機能が内蔵されているので、使用したり管理するためにプラグインは必要ありません。
WordPress 2.5では、管理画面で Gravatar の設定ができるようになり、テーマ作者と一般のWordPressユーザーのどちらもGravatarが利用しやすくなりました。テーマ作者は Gravatar をテーマのデザインに組み込むことができるようになったので、今後はより多くのテーマで組み込まれるべきです。WordPress ユーザーは、Settings > Discussion Administration PanelでGravatarをより簡単に設定できるようになります。
WordPressユーザーは、以下の設定ができます:
- アバター(Gravatar)を表示したり表示しないようにしたりできる。
- アバターの閲覧制限のレーティングを設定できる。
WordPress 2.5に対応したテーマ
WordPress 2.7 以降対応のテーマでは get_avatar()
の追加は不要です(参照)。
Gravatar をテーマに加えるには、get_avatar
と呼ばれる関数を利用します。この関数は、アバターの完全な画像 HTML タグを返します。
この関数は、以下のように呼び出されます:
<?php echo get_avatar( $id_or_email, $size = '96', $default = '<path_to_url>' ); ?>
パラメータは以下の通りです:
- id_or_email(必須):作成者のUser ID(整数または文字列)、メールアドレス(文字列)またはコメント・ループのコメント・オブジェクト。注:ほとんどのコメントテンプレートでは、コメントを付けた人の Gravatar を示すために、$commentを使うことができます。他のテンプレートでは
get_the_author_meta('user_email')
を使います (ただし、バージョン 2.8 以前ではget_the_author_id()
)。 - size(オプション):アバターの表示サイズ(最大512)。
- default(オプション):アバターの標準として利用されるロケーション(アバターと関連する電子メールアドレスがない利用者に適用される)。空白のままの場合は、次のような Gravatar が標準として適用されます。
若干の注意事項:
- size パラメータでアバターのサイズが指定されない場合は、アバターの標準サイズは96x96になります。
- デフォルトのアバターは、Gravatar です。
- アバターは、ユーザーが管理画面で[アバターを表示する]と設定されている時だけ表示されます(デフォルトの設定では表示)。
- アバターは、ユーザーが管理画面で設定したレーティングだけに基づいて表示されます。
コード出力:
デフォルトの設定では、上記の関数を使用した出力は以下のようなリストになります。さまざまなクラスが、要素のスタイル付けをするために、img 要素に適用されます。
<img alt='' src='http://gravatarurl_or_default' class='avatar avatar-$size' height='$size' width='$size' />
メールアドレスがないため、Gravatar がデフォルトの画像に戻ると(例:ピンバックまたはトラックバックの場合)、デフォルトの設定が指定されたかどうかに関わらず、img
要素には avatar-default
の CSS クラスが適用されます。
Gravatarを使ったテーマ
WordPress2.5のアバター機能を使ったWordPress Themeを開発したい場合は、以下のGravatar関数をチェックするコードを加えてください:
if (function_exists('get_avatar')) { echo get_avatar($email); } else { //alternate gravatar code for < 2.5 $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=" . md5($email) . "&default=" . urlencode($default) . "&size=" . $size;; echo "<img src='$grav_url'/>"; }
Gravatar が存在するかのチェック
メールアドレスをもとに Gravatar 画像をリクエストしても画像がない場合、デフォルト画像が返されます。
これを望まない場合、実際の Gravatar 画像が返ってくるか、デフォルト画像が返ってくるかをチェックするとよいでしょう。
例となる状況:
- Gravatar を持たないユーザーにはローカルでデフォルトに設定したアバターを表示
- Gravatar がない場合のみ、登録するようにアラートを表示
注: 以下の情報を活用するには、PHP の理解が必要です。
このコツは、「404」をデフォルトに指定することです。以下の例では、Gravatar 画像がないとサービスはデフォルト画像の代わりに404エラーを返し、実際の画像があれば200コードを返します。他のエラーコードが帰ってくる場合もあるかもしれないので、200コードをチェックするのがよいでしょう。
以下は HTTP ヘッダーを利用したチェック関数の例です。必要に応じて変更してください。
function validate_gravatar($email) { // 使われる URL を作成しヘッダーをテスト $hash = md5($email); $uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=404'; $headers = @get_headers($uri); if (!preg_match("|200|", $headers[0])) { $has_valid_avatar = FALSE; } else { $has_valid_avatar = TRUE; } return $has_valid_avatar; }
Gravatarをカスタマイズする
Gravatarをカスタマイズするためのいくつかの設定があります。設定するパラメータは以下の通りです:
<?php gravatar("rating", size, "default", "border"); ?>
- rating
- Gravatarが表示される最も高いレーティングを指定します。レーティングには、
G、PG、R、X
があります。PG よりも高いレーティングだけが表示するには、以下のようなコードになります:
<?php gravatar("PG"); ?>
- size
- Gravatarのサイズは、デフォルトの設定では80×80ピクセルです。サイズを変更するには、sizeの値を変更します。80×80プクセルで四角形に設定するには、次のような値に設定します:
<?php gravatar("PG", 80); ?>
- default
- ユーザーが Gravatar や互換性のある他のアバターサービスに未登録の場合は、デフォルト設定の画像が表示されます。利用者は、標準の設定の画像を PNG、JPG または GIF 形式の画像に変更できます。
<?php gravatar("PG",40,"/images/no_gravatar.gif"); ?>
- border
- 境界線を引くには、
border
関数を使用します。境界線は選択した色でGravatarの周囲に、幅1ピクセルで描かれます。標準の設定では境界線はなしです。以下の例は、レーティングがPG
以下で、サイズが40×40ピクセル、Gravatar がない場合にはデフォルト設定の画像を表示し、1ピクセルの赤い境界線を引くという場合の設定です:
<?php gravatar("PG",40,"/images/no_gravatar.gif","FF0000"); ?>
資料
- Gravatar
- How to Use Gravatars in WordPress /en
- Gravatars Implement Page
- Gravatar Signup Plugin
- Gravatars & WordPress 2.5
- Add Gravatar Support to Your WordPress Comments
- WP Forum post about checking for existence of Gravatars
- わーどぷれすっ! » Gravatars と WordPress 2.5 -- 管理画面の設定~テーマへの追加方法、テーマを WordPress 下位バージョン互換にする方法
- e.b.i.f » テーマにアバターを導入する方法 (WP 2.5+) -- コメント欄への表示方法
変更履歴
- 2.7 : コメントループとして新規テンプレートタグ wp_list_comments() を用いると、
get_avatar()
を使わずに Gravatar を表示できます。 - 2.5 : WordPress 標準機能として組み込まれました。
関連ページ
- 管理画面 > 設定 > ディスカッション設定
あわせて読む
最新英語版: WordPress Codex » Using Gravatars (最新版との差分)