web-dev-qa-db-ja.com

ランダムデフォルトアバター機能

更新! wordpress.orgフォーラムからのちょっとした助けの後、私はこのコードでいくらか進歩しました:

// Custom Default Avatar

if ( !function_exists('fb_addgravatar') ) {
function fb_addgravatar( $avatar_defaults ) {
$myavatar = get_bloginfo('template_directory') . '/images/avatars/avatar_' . (string) Rand(1,5) . '.png';
$avatar_defaults[$myavatar] = 'Users';
return $avatar_defaults; }
add_filter( 'avatar_defaults', 'fb_addgravatar' ); }

これを自分のfunctions.phpファイルに追加すると、ディスカッションパネルで自分のカスタムアバター "Users"を選択できるようになり、自分のアバターを持っていないコメンターにも表示されます。

ただし、これまでのところ、すべてのコメント投稿者に同じ画像を使用しています。

理想的には、私はディスカッションに行き、アバターリストの一番下にある「ユーザー」を選び、そして自分自身を持っていない各コメンターのためにランダムな画像を持ちたいです。小さいレコードカバーを使用します。ですから、5つの異なるレコードカバーが実際のアバターを持っている人たちと混ざっていると言うコメント欄があるでしょう。

私は3、3年前にこの作業をしていましたが、今回はそれほど簡単ではありませんでした。繰り返しになりますが、すべての支援は大歓迎です。

1
actionbasic

Function get_avatar の3番目の引数はデフォルトの画像です。これに関数の戻り値を渡すこともできます。そのため、テーマのどこでget_avatarを実行しても構いません。デフォルトのアバターを変更する関数を3番目の引数として設定できます。

get_avatar( get_the_author_meta( 'user_email' ), 64, 'http://example.com/path/to/image.jpg' );

または、3番目の引数として関数の戻り値を使用します。

get_avatar( get_the_author_meta( 'user_email' ), 64, figure_out_new_default_image() );

$avatar_defaultsはwp-adminのSettings> Discussionで設定できる単一の画像を設定するためのものであるため、このIMOはデフォルトの画像情報を渡すのに最適な場所です。

2
Philip M. Hofer