it-swarm.com.de

Wie füge ich einen zufälligen benutzerdefinierten Gravatar in die WordPress-Kommentare ein?

Ich habe einen Kunden, der 5 verschiedene Gravatar-Bilder hat, und möchte, dass diese zufällig als Miniaturbild für Kommentare von Leuten verwendet werden, die kein Gravatar haben. Ich weiß, wie ich den Gravatar in einen benutzerdefinierten ändern kann, aber nicht jedes Mal zufällig einen der fünf im Set anzeigen kann. Ich weiß, dass es möglich ist, weil Automattic es tut, aber ich weiß jetzt nicht, wo ich mir diesen Code ansehen kann.

Weiß jemand schlauer als ich, wie das gemacht werden kann?

//* 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

Schauen Sie sich den Codex über "Verwenden von Gravataren" an. Dort finden Sie einen Teil über "Überprüfen auf Existenz eines Gravatars", der wie folgt funktioniert diese:

Der Trick besteht darin, "404" als Standard festzulegen. In diesem Fall gibt der Gravatar-Dienst einen 404-Fehler zurück, wenn kein Gravatar vorhanden ist, anstatt ein Standardbild zurückzugeben. Ein reales Bild erhält einen 200-Code. Überprüfen Sie am besten auf 200, da in anderen Fällen möglicherweise auch andere Fehler zurückgegeben werden.

Es gibt auch ein Code-Snippet, das Sie für diese Prüfung verwenden können.

Dann erstellen Sie so etwas für Ihre Standard-Avatare in single.php/comments.php oder was auch immer Sie verwenden:

$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() scheint nicht die beste Zufälligkeit von dem zu haben, was Sie in den Kommentaren auf php.net gelesen haben, aber vielleicht funktioniert es gut für Sie.

Dieser Code ist ungetestet, es handelt sich also eher um eine Erklärung, wie Sie vorgehen könnten, als um eine gebrauchsfertige Lösung.

1
flomei