web-dev-qa-db-fra.com

Comment changer la taille de Gravatar lors de l'utilisation de comments_template

J'essaie de changer la taille par défaut de Gravatar. Comme j'utilise le modèle de commentaires généré par WP (à l'aide de la fonction comments_template ()), je me suis tourné vers les filtres. Voici mon code personnalisé:

function change_avatar_size ( $id_or_email, $size = 100, $default = '', $alt = '', $args = null ) {

    $args['size']    = (int) $size;  

    $url2x = get_avatar_url( $id_or_email, array_merge( $args, array( 'size' => $args['size'] * 2 ) ) );

    $args = get_avatar_data( $id_or_email, $args );

    $url = $args['url']; 

    $class = array( 'avatar', 'avatar-' . (int) $args['size'], 'photo' );  

    $avatar = sprintf(
        "<img alt='%s' src='%s' srcset='%s' class='%s' height='%d' width='%d' %s/>",
        esc_attr( $args['alt'] ),
        esc_url( $url ),
        esc_attr( "$url2x 2x" ),
        esc_attr( join( ' ', $class ) ),
        (int) $args['height'],
        (int) $args['width'],
        $args['extra_attr']
    );

    return $avatar;

}
add_filter( 'get_avatar', 'change_avatar_size' );

La taille change, mais je ne reçois pas l'URL Gravatar correcte. Je reçois actuellement une image Gravatar par défaut, comme si le lien généré n'était pas correct. Des idées?

1
Bruno Kos

Voici comment faire en utilisant la méthode de Bruno (pour les autres qui se demandent):

wp_list_comments( array(
    'avatar_size' => 32
) );

Vous pouvez également le faire de cette façon en fonction de votre cas d'utilisation:

global $comment;
echo get_avatar($comment, 64)
1
Bryan Willis

Vous l'avez trouvé - inutile de vous préoccuper des filtres, étant donné qu'il existe un paramètre avatar_size dans wp_list_comments, vous pouvez le trouver ici: https://developer.wordpress.org/reference/functions/wp_list_comments/

0
Bruno Kos