私はavatar_defaults
filterフックを使ってデフォルトのアバターリストをフィルタリングしています。例えば:
function my_avatar_defaults( $avatar_defaults ) {
$avatar_defaults['http://example.com/foo.png'] = __( 'Foo' );
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'my_avatar_defaults' );
[設定]> [ディスカッション]に移動してから下にスクロールすると、Fooがデフォルトのアバターオプションとして追加されていることがわかります。例として、次のスクリーンショットを参照してください。
問題はFooの隣に表示される画像のsrc
属性です。 Gravatarに電話をかけているようです。これは私がFooの隣の画像用に手に入れたソースコードの例です:
<img src="http://0.gravatar.com/avatar/efaeb0e0be9922051a1c4ccce766a141?s=32&d=http%3A%2F%2Fexample.com%2Ffoo.png%3Fs%3D32&r=G&forcedefault=1" />
GravatarのURLではなくsrc
属性が自分の画像のURLを指していることを確認する方法
あなたはそれを正しくやっています。
Gravatar.comを呼び出すと、カスタムイメージの場所がWPでロードできるように渡されます。 src内のクエリ文字列を見てください、あなたはあなたの画像の場所を見るでしょう。そういうわけでそれは働きます。
2つのメモ:
get_avatar()
は「プラグイン可能」な関数です。つまり、get_avatar()
という名前の新しい関数を保持するためのプラグインを作成することができます。これにより、WPで使用されている元の関数が上書きされます。get_avatar()
にはフィルターもあります
return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );
戻り値を変更するために使用できます。
add_filter( 'get_avatar', function( $html, $id, $size, $default, $alt )
{
// apply some changes here
return $html;
}, 10, 5 );
つまり、の出力も変更して、src
呼び出しを "Gravatar"に変更しないようにするだけです。