J'essaie de remplacer les données de l'auteur de commentaires Wordpress:
1) Avatar (image téléchargée à la place de Gravatar)
2) Lien auteur (lien vers la page de l'auteur, seuls les membres pouvant commenter)
J'ai trouvé une excellente solution à cela à partir de cette question et j'ai implémenté le code suivant:
if ( ! function_exists( 't5_comment_uri_to_author_archive' ) )
{
add_filter( 'get_comment_author_url', 't5_comment_uri_to_author_archive' );
function t5_comment_uri_to_author_archive( $uri )
{
global $comment;
// We do not get the real comment with this filter.
if ( empty ( $comment )
or ! is_object( $comment )
or empty ( $comment->comment_author_email )
or ! $user = get_user_by( 'email', $comment->comment_author_email )
)
{
return $uri;
}
return get_author_posts_url( $user->ID );
}
}
Le code fonctionne parfaitement pour remplacer les liens, et je souhaite également l'utiliser pour remplacer les avatars. J'ai créé une copie de la fonction et modifié les noms et le retour:
if ( ! function_exists( 'my_comment_imgs' ) )
{
add_filter( 'get_comment_author_url', 'my_comment_imgs' );
function my_comment_imgs( $uri )
{
global $comment;
// We do not get the real comment with this filter.
if ( empty ( $comment )
or ! is_object( $comment )
or empty ( $comment->comment_author_email )
or ! $user = get_user_by( 'email', $comment->comment_author_email )
)
{
return $uri;
}
return get_avatar( $user->ID );
}
}
Cependant, cette fonction annule la première, je reçois donc des avatars mis à jour, mais je perds les liens de l'auteur. Comment remplacer les deux éléments en même temps (avatars et liens)?
J'étais peut-être déjà épuisé par mon travail, mais ce matin, j'ai essayé le même code et j'ai réussi à le faire fonctionner correctement.
if ( ! function_exists( 'comment_imgs' ) )
{
add_filter( 'get_comment_author_url', 'comment_imgs' );
function comment_imgs( $avatar, $id_or_email, $size, $default, $alt )
{
global $comment;
// We do not get the real comment with this filter.
if ( empty ( $comment )
or ! is_object( $comment )
or empty ( $comment->comment_author_email )
or ! $user = get_user_by( 'email', $comment->comment_author_email )
)
{
return $uri;
}
return get_avatar( $user->ID );
}
}
Le code original est attribué à Thomas Scholz pour avoir créé un lien vers des pages d’auteurs. Cette modification récupère les avatars locaux et deux fonctions ne se contredisent pas.