ワードプレスで管理者のアバター画像を設定する方法【プラグイン・Gravatar不要】

※当サイトにはプロモーションが含まれています。

ワードプレス(WordPress)には、標準機能としてコメント(ディスカッション)機能が用意されています。

この機能を使えば、サイトの訪問者からコメントを受け取ることができ、コミュニケーションの場として活用できるので、それがワードプレスの魅力の一つにもなっています。

にゃのらいとにゃのらいと

ただ、コメント機能で表示されるアバター画像はダサすぎるにゃ

ワードプレス|デフォルトのアバター

一応、このアバター画像を変更するには、一般的に以下の方法で可能です。

  • プラグイン(WP User Avatar、Simple User Avatarなど)を使う
  • Gravatar(グラバター)のサービスを利用する

この2つです。

にゃのらいとにゃのらいと

プラグインは不具合が怖いし、Gravatarはメールを登録するから面倒くさいにゃ

そのため今回は、プラグインやGravatarを使わずに、“管理者”のアバター画像を変更してみました。

にゃテックにゃテック

下記のように表示されたにゃ

ワードプレス|コメントアバター画像カスタマイズ

管理者のアバター画像を設定する方法【function.php】

管理者のアバター画像を設定する方法として、今回は、function.phpに記述して変更します。

①アバター画像のアップロード

使用する予定のアバター画像を、メディアにアップロードして、URLをコピーします。

なお、最も一般的な表示サイズは、32×32pxですが、テーマなどによって大きく表示される事もあるので、128×128pxでアップすればいいと思います。

アバター画像のURLをコピー

②管理者のメールアドレス確認

ワードプレスの管理者メールアドレスを確認してコピーしておきます。

左メニューにある、設定 > 一般 を選択。

ワードプレス|管理者メールアドレス

③function.phpへ記載

function.phpに以下のコードを記載します。

add_filter('get_avatar', 'custom_avatar_img_tag_for_admin', 10, 5);
function custom_avatar_img_tag_for_admin($avatar, $id_or_email, $size, $default, $alt) {
if (is_admin()) {
return $avatar;
}

$admin_email = '(管理者のメールアドレス)';
$email = '';

if (is_object($id_or_email)) {
if (isset($id_or_email->comment_author_email)) {
$email = $id_or_email->comment_author_email;
} elseif (isset($id_or_email->user_id)) {
$user = get_user_by('id', $id_or_email->user_id);
if ($user) $email = $user->user_email;
}
} elseif (is_numeric($id_or_email)) {
$user = get_user_by('id', $id_or_email);
if ($user) $email = $user->user_email;
} elseif (is_string($id_or_email)) {
$email = $id_or_email;
}

if (strtolower($email) === strtolower($admin_email)) {
$custom_avatar_url = '(アップロードした画像のURL)';
return '<img alt="' . esc_attr($alt) . '" src="' . esc_url($custom_avatar_url) . '" class="avatar avatar-' . esc_attr($size) . ' photo" height="' . esc_attr($size) . '" width="' . esc_attr($size) . '" />';
}

return $avatar;
}

上記のコードで記載しなければいけない箇所は2箇所です。

まず1つ目は、②で確認したメールアドレスを記載します。

$admin_email = '(管理者のメールアドレス)';

そして、次は①でアップロードした画像のURLを記載します。

$custom_avatar_url = '(アップロードした画像のURL)';

そして、修正した内容をfunction.phpに記載します。

function.phpの場所は?

function.phpは、だいたいどのテーマも、

外観 > テーマエディター

にあります。

テーマエディター

テーマエディターに移動したら、編集するテーマが、現在、使用しているテーマかを確認しましょう。

問題なければ、「function.php」を選択します。

function.php

なお、function.phpに記載する際に、ブラウザ上で全角から半角に変換すると、エンコーディング(文字コード)の関係で、不具合が発生することがあります。

その為、編集する時は、メモ帳などに貼り付けたものを編集をしてからペーストするようにしましょう。

選択したら、一番下に以下のコードを追加します。

add_filter('get_avatar', 'custom_avatar_img_tag_for_admin', 10, 5);
function custom_avatar_img_tag_for_admin($avatar, $id_or_email, $size, $default, $alt) {
if (is_admin()) {
return $avatar; // 管理画面では元のアバター表示
}

$admin_email = '(管理者のメールアドレス)';
$email = '';

if (is_object($id_or_email)) {
if (isset($id_or_email->comment_author_email)) {
$email = $id_or_email->comment_author_email;
} elseif (isset($id_or_email->user_id)) {
$user = get_user_by('id', $id_or_email->user_id);
if ($user) $email = $user->user_email;
}
} elseif (is_numeric($id_or_email)) {
$user = get_user_by('id', $id_or_email);
if ($user) $email = $user->user_email;
} elseif (is_string($id_or_email)) {
$email = $id_or_email;
}

if (strtolower($email) === strtolower($admin_email)) {
$custom_avatar_url = '(アップロードした画像のURL)';
return '<img alt="' . esc_attr($alt) . '" src="' . esc_url($custom_avatar_url) . '" class="avatar avatar-' . esc_attr($size) . ' photo" height="' . esc_attr($size) . '" width="' . esc_attr($size) . '" />';
}

return $avatar;
}

変更箇所(2箇所)を変更するのを忘れずに・・・。

最後に、「ファイルを更新」ボタンで、保存(更新)します。

ワードプレス|function.php

※function.phpの設定を失敗すると、最悪、サイトが表示されなくなります。
その為、コードを追加する際は、必ずバックアップを取ってから追加するようにしてください。

なお、すでにサイトに反映されているコメントについては、このfunction.phpに記述してもアバター画像は変更されません。

コメントを更新した時に、アバター画像も一緒に変更(更新)されますのでご注意ください。

にゃテックにゃテック

コメント内容を変更せずに更新してもアバター画像は更新されるにゃ

ご支援のお願い
この記事が役に立ったと感じたら・・・

Ny@Tech(にゃテック)

この記事が少しでもお役に立ったと感じていただけましたら、ぜひ下の“ボタン”をクリックしてお買い物をしていただけると嬉しいです。

ご購入いただいた商品の金額の一部が私に入り、より有益な記事を作るための励みになります。

なお、商品は、ご自身の好きなものをご購入いただければと思います。

無料相談・お問い合わせはこちら