Gravatarのデフォルトサイズを変更しようとしています。 WPで生成されたコメントテンプレートを使用しているので(comments_template()関数を使用して)、私はフィルタに目を向けました。これが私のカスタムコードです:
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' );
サイズは変わりますが、正しいGravatar URLを取得していません。生成されたリンクが正しくないかのように、私は実際にデフォルトのGravatar画像を取得しています。何か案は?
これは、Brunoが使っていた方法を使ってそれを行う方法です(これを疑問に思う人たちのために):
wp_list_comments( array(
'avatar_size' => 32
) );
あなたのユースケースに応じて、このように これを行うこともできます 。
global $comment;
echo get_avatar($comment, 64)
それを見つけました - wp_list_commentsの中にavatar_sizeパラメータがあることを考えると、フィルタを気にする必要はありません。 https://developer.wordpress.org/reference/functions/wp_list_comments/