[WordPress]コメント等に使用されるアバターをカスタムフィールドに指定した画像に変更する

Contents

コメントのアバターを変えたい

アバターを自分の好みの画像に変更したい

WordPressは、Gravatorというシステムと連動してアバターを表示しています。

Gravatar
https://ja.gravatar.com/

アバターを変更する場合は、このGravatorに自分のメールアドレスを登録する必要があるのですが、結構面倒だと言われることが有ります。

今回、そんな時のために、ユーザカスタムフィールドに画像を登録してもらい、それをアバターとして表示するようにカスタマイズします。

アバターを取得している場所

アバターを取得している処理は、wp-includes/link-template.php のget_avatar_data関数っぽいです。

get_avatar_data関数の以下のフィルターフックの値をフィルタ(add_filter)します。

ちなみにこのフィルタの第一引数の$argsは以下のように設定されています。
$args[“url”]を書き換えてあげればアバターで使用する画像が変わります。

 

functions.php に処理を追加しましょう

さあ、フィルタを使って書き換えて見ましょう。

ちなみに今回はACF(Advanced Custom Fields Plugin)を使っていますので、流用される場合は、適宜修正してくださいね。

お使いのテーマのfunctions.phpに以下を書き込みます。

これをすることで、該当するユーザがコメントの書き込みを行った場合、以下のような$args[“url”]に書き換わり、アバターの画像を変えることができます。

まとめ

WordPressでは、様々なフィルターフックやアクションフックが用意されているため、フックする箇所に目星をつけることができれば、コアファイルを触ること無く簡単に結果を制御できます。

ぜひご活用ください。



「[WordPress]コメント等に使用されるアバターをカスタムフィールドに指定した画像に変更する」への3件のフィードバック

  1. 初めまして。
    突然のコメント失礼します。

    ユーザーのプロフィール画像をプラグイン・Gravatarなしで変更できないかと探していたところ辿り着きました。

    ご質問ですが、アバターに表示する画像をテーマ内のフォルダにある画像から指定することはできますでしょうか?
    【テーマ/img/画像】

    お手数をおかけいたしますが、ご教授いただけませんでしょうか。
    何卒よろしくお願いいたします。

    1. つっちーさんご質問ありがとうございます。
      こんな感じで書き換えてあげたらいかがでしょうか?

      要は$args[“url”]に、アバター画像の場所を指定してあげれば変更できます。
      上記コードの以下の部分を、希望するファイル名やパスに変えてあげてくださいませ。

  2. すみません。こちらを参考にやってみましたが画像が反映されません。なぜでしょう?

コメントを残す