Ajouter un avatar aléatoire dans les commentaires de WordPress

La semaine dernière, j’ai mis à jour la présentation des commentaires de ce blog en affichant en plus un avatar. Ça fait joli, et ça me permet surtout de reconnaître tout de suite les gens que je connais ou que je suis sur Twitter. Pour faire ça, WordPress est bien fait puisqu’il inclut par défaut le système de Gravatar. Le principe est simple : vous créez un compte chez Gravatar, vous configurez une ou plusieurs adresses e-mails et y associez un avatar. Ensuite, les sites qui le souhaitent iront chercher automatiquement votre avatar pour l’afficher. Par défaut, on peut afficher une image pour les gens qui n’ont pas de compte chez Gravatar. C’est sympa, sauf que ça peut faire vite répétitif si plusieurs de vos lecteurs n’utilisent pas le système. Du coup, j’ai fait une petite fonction PHP qui va retourner une image aléatoirement.  Voici un petit tutoriel tout simple pour faire ça.

1. Activer les avatars sur WordPress

Activer les avatars sur WordPress

Dans l’administration de WordPress, allez sur la page Règlages > Discussion. Dans la partie « Avatars », sélectionnez l’option « Afficher les avatars » et cliquez sur « Enregistrer les modifications ».

2. Afficher l’avatar dans vos commentaires

Dans votre thème WordPress, ouvrez le fichier correspondant à l’affichage de vos commentaires (en général « comments.php« ). Pour afficher l’avatar, nous allons utiliser la fonction de WordPress get_avatar(). Celle-ci prends 3 paramètres : un identifiant correspondant à l’auteur du commentaire (un ID, un e-mail ou carrément l’objet du commentaire en PHP), la taille de l’image désirée et un chemin vers l’image par défaut. Et c’est là où on va filouter, en appelant une fonction PHP qui va retourner un avatar aléatoire. Ainsi, dans le code d’un thème classique ça devrait donner quelque chose comme ça.

<?php
foreach ($comments as $comment)
{
echo get_avatar($comment, 48, get_random_avatar());
}
?>

3. Créer la fonction qui retourne un avatar aléatoirement

Dans le fichier « functions.php » de votre thème, vous allez ajouter la fonction faite par mes petites mimines, get_random_avatar(), qui permet de récupérer une image aléatoirement. Ici, j’ai mis mes différents avatars dans un sous-dossiers « images » de mon thème.
<?php
function get_random_avatar()
{
// On cree un tableau avec les noms de nos images
$avatars = array('avatar1.jpg', 'avatar2.gif', 'avatar3.png');
// On choisit une image au hasard
$random_index = array_rand($avatars);
// On retourne l'URL de l'image
return get_bloginfo('template_url').'/images/'.$avatars[$random_index];
}
?>

4. Profit.

A vous la gloire dans vos commentaires grâce à cette magnifique fonction !