J'ai utilisé un hack WP pour afficher les photos de l'auteur. Par exemple, mon single.php a un slug d'auteur qui affiche la photo de l'auteur.
J'ai créé un dossier appelé auteurs dans mon dossier thème/images. En fonction de l'ID de l'auteur, je nomme les fichiers 1.jpg, 2.jpg, etc.
Donc, j'appelle cette image
<img src="<?php bloginfo('template_directory') ?>/images/authors/<?php the_author_ID()?>.jpg" alt="<?php the_author(); ?>">
Maintenant, je modifie un plugin qui affiche les auteurs dans la barre latérale. Cependant, ce plugin utilise la fonction get_avatar, qui est la suivante:
/**
* If show avatar option is checked, add get_avatar function to cache.
*/
if($jmetc_options['show_avatar'] == 1) {
$jmevar['cache'] .= get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']);
}
Quelqu'un peut-il me conseiller sur l'utilisation/la modification de get_avatar afin d'utiliser le code par défaut que j'utilise?
La fonction get_avatar()
applique un crochet de filtre get_avatar
que vous pouvez utiliser pour modifier le balisage de l'avatar:
return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
Je (pense) ce serait la bonne façon de se connecter à ce filtre:
function mytheme_get_avatar( $avatar ) {
$avatar = '<img src="<' . get_template_directory_uri() . '/images/authors/' . get_the_author_ID() . '.jpg" alt="' . get_the_author() . '">';
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar' );
EDIT
p.s. Une alternative intéressante à cette approche pourrait être le Simple Local Avatars Plugin.
EDIT 2
Le filtre est appliqué en utilisant add_filter()
, pas apply_filters()
. C'était une faute de ma part; corrigé maintenant!
EDIT 3
Je ne pense pas que cela soit correct:
P.S: Juste pour clarifier .. J'ai remplacé
get_avatar($tc->comment_author_email, $jmetc_options['avatar_size']);
paradd_filter('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
Premièrement, vous appelez toujours get_avatar()
dans votre fichier de modèle, en transmettant les mêmes paramètres que précédemment. L'appel add_filter()
appartient au functions.php
.
Deuxièmement, vous pouvez transmettre des paramètres supplémentaires à votre fonction de filtrage. par exemple.:
function mytheme_get_avatar( $avatar, $id_or_email, $size ) {
$avatar = '<img src="<' . get_template_directory_uri() . '/images/authors/' . $id_or_email . '.jpg" alt="' . get_the_author() . '" width="' . $size . 'px" height="' . $size . 'px" />';
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );
Il y a une petite erreur dans la fonction ci-dessus
mieux utiliser ceci:
function mytheme_get_avatar( $avatar, $id_or_email, $size ) {
$avatar = '<img src="' . get_template_directory_uri() . '/images/authors/' . $id_or_email . '.jpg" alt="' . get_the_author() . '" width="' . $size . 'px" height="' . $size . 'px" />';
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );