web-dev-qa-db-ja.com

WordPressのコメントにランダムなカスタムGravatarを追加する方法?

私は5つの異なるグラバター画像を持っているクライアントを持っています、そしてそれらをGravatarを持っていない人々のコメントのためのサムネイルとしてランダムに使用したいです。 Gravatarをカスタムのものに変更する方法を知っていますが、セット内の5つのうちの1つを毎回ランダムに表示しないでください。 Automatticがそれを実行するので、私はそれができることを知っています、しかし私は今私がそのコードを見ることができるところにいません。

これがどのように行われるかを私が知っているよりも賢い人はいますか?

//* Create a custom Gravatar
add_filter( 'avatar_defaults', 'sp_custom_gravatar' );
function sp_custom_gravatar ($avatar) {
    $custom_avatar = get_stylesheet_directory_uri() . '/images/gravatar.png';
    $avatar[$custom_avatar] = "Custom Gravatar";
    return $avatar;
}
2

「Gravatarsの使用」についてのコーデックスを見てください。 「Gravatarの存在の確認」に関する部分があります。

これを行うためのトリックは、デフォルトとして "404"を指定することです。この場合、gravatarサービスは、デフォルトイメージを返すのではなく、gravatarが存在しなければ404エラーを返します。実際の画像は200コードになります。他の場合には他のエラーも返される可能性があるため、200をチェックするのが最善です。

そのチェックに使用できるコードスニペットもあります。

それからsingle.php/comments.phpであなたのデフォルトのアバターのためにこのような何かを構築するか、あなたが使用しているものは何でも:

$default_avatars = array(
                      'yoururl.com/whatever/static/ava1.jpg',
                      'yoururl.com/whatever/static/ava2.jpg',
                      'yoururl.com/whatever/static/ava3.jpg',
                      'yoururl.com/whatever/static/ava4.jpg',
                      'yoururl.com/whatever/static/ava5.jpg'
                   );
$my_default_avatar_now = array_Rand($default_avatars);

echo '<img src="'.$my_default_avatar_now.'" class="avatar" />';

array_Rand()は、あなたがphp.netのコメントで読んだものから最も良いランダム性を持っていないようですが、多分それはあなたのためにうまく働いています。

このコードはテストされていないので、すぐに使えるソリューションを説明するものです。

1
flomei