当記事ではWordPressで管理しているWebサイトのゲストユーザーが投稿したコメントのアバター(アイコン画像)を、サイト管理者が好きな画像に変更する方法を解説しています。
※この記事はWordPressでWebサイトを管理している人向けの記事となります。
WordPress ゲストアバターをプラグインを使わずに変更する方法
WordPressで構築されたWebサイトのコメントのアバターは、WordPressアカウントを持っていて、かつGravatarアイコンを設定しているユーザー以外は、管理者が設定したものが自動的に表示されます。
そして管理者は、WordPress管理画面の[設定]>[ディスカッション]>[デフォルトのアバター] からこのアバター設定を変更できますが、とはいえあまりクオリティの高くないいくつかの選択肢から選ぶ必要があります。
この設定画面でアバターを追加できるそこでこのアイコンを管理者が任意に変更する方法はいくつかあるのですが、ここではプラグインを使わない方法をご紹介します。
画像を作成し、テーマフォルダに保存する
まずは、アイコンの画像を作成しましょう。縦横1:1の正方形でなるべく容量の小さいものがよいでしょう。基本的には画像はひとつで良いですが、複数作成してランダムに表示させたいという場合には好きなだけ作成してください。
今回は下記のような画像を300×300pxで作成しました。




続いて、これを現在利用しているテーマディレクトリの中にアップロードします。当記事の例ではテーマディレクトリの中にimagesというディレクトリをつくりアップロードしました。
- テーマディレクトリ/images/guest01.png
- テーマディレクトリ/images/guest02.png
- テーマディレクトリ/images/guest03.png
- テーマディレクトリ/images/guest04.png
次に同じくテーマディレクトリのfunctions.phpに下記コードを記述します。
//WordPressのアバターを自分の独自のものに設定する
//get_avatarフィルターを使用してデフォルトのGravatarを自分の独自のものに置き換え
add_filter( 'get_avatar', 'my_custom_avatar', 10, 5 );
function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
$user = false;
if ( is_numeric( $id_or_email ) ) {
$id = (int) $id_or_email;
$user = get_user_by( 'id' , $id );
} elseif ( is_object( $id_or_email ) ) {
if ( ! empty( $id_or_email->user_id ) ) {
$id = (int) $id_or_email->user_id;
$user = get_user_by( 'id' , $id );
}
} else {
$user = get_user_by( 'email', $id_or_email );
}
if ( $user && is_object( $user ) ) {
return $avatar;
} else {
$custom_avatars_urls = array(
// ゲストユーザーのカスタムアバターを下記に記載
get_stylesheet_directory_uri() . '/images/guest01.png',
get_stylesheet_directory_uri() . '/images/guest02.png',
get_stylesheet_directory_uri() . '/images/guest03.png',
get_stylesheet_directory_uri() . '/images/guest04.png',
// お好みでもっと増やしても良いでしょう
);
$custom_avatar_url = $custom_avatars_urls[array_rand($custom_avatars_urls)];
$avatar = "<img alt='{$alt}' src='{$custom_avatar_url}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
}
return $avatar;
}
上記コードを追記したfunctions.phpをアップロードすれば完了です。なお、画像を指定する箇所に行を追加すれば、ランダムに表示されるアイコンを増やす事ができます。上記例では4つ設定していますが、1行だけにすれば該当画像だけがゲストアバターとなります。
当然ファイル名やアップロードディレクトリが違う場合は、該当部分を適宜変更しましょう。下記のように……
get_stylesheet_directory_uri() . '/images/guest01.png',
get_stylesheet_directory_uri() . '/images/guest02.png',
get_stylesheet_directory_uri() . '/images/guest03.png',
get_stylesheet_directory_uri() . '/images/guest04.png',
get_stylesheet_directory_uri() . '/images/guest05.png',
get_stylesheet_directory_uri() . '/images/guest06.png',
...
..
.
get_stylesheet_directory_uri() . '/images/guest15.png',
get_stylesheet_directory_uri() . '/images/guest16.png',
アバター画像を大量に設定する事でもっと楽しくなりそうですが、同時に表示時の負荷も増えるのでほどほどに。
実際のコメント表示例
上記を適用した事で、Gravatarアイコンを設定しているログインユーザー以外のコメントは、指定した画像がランダムに表示されるようになりました。

UZUREA編集部以外のアイコンはランダム表示される
なお、アバター画像を複数指定した場合は、ページにアクセスする毎に各ゲストユーザーのアイコンは完全にランダムに変わります。(=コメント毎に画像が紐づけられるのでは無く、表示時に選択肢から選出される)
まとめ
当記事では、プラグインを使わずにデフォルトアバターを好きなアイコンに変更する方法の一例について解説しましたが、方法は他にも色々あります。
特にプラグインを使って……という事になると、より柔軟に色々設定できるものがありますので、こだわりたい方はそれらを検討してみてもよいでしょう。
当記事の執筆者(私)は、しっかりと検証していませんが、下記のプラグインがこれらの機能を実装できそうです。
上記プラグインは、当記事掲載時点で定期的なアップデートがされているもののみリストアップしていますが、詳しい機能や解説はリンク先でご確認ください。