如何在使用COMMENTS_TEMPLATE时更改Gravata大小

时间:2015-07-21 作者:Bruno Kos

我正在尝试更改默认的Gravatar大小。由于我使用的是WP生成的注释模板(使用comments\\u 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图像,好像生成的链接不正确。有什么想法吗?

2 个回复
SO网友:Bryan Willis

下面是如何使用Bruno使用的方法(对于其他对此感到疑惑的人):

wp_list_comments( array(
    \'avatar_size\' => 32
) );
你也可以做到this way 根据您的用例:

global $comment;
echo get_avatar($comment, 64)

SO网友:Bruno Kos

找到了-无需使用过滤器,鉴于wp\\u list\\u注释中有avatar\\u size参数,可在此处找到:https://developer.wordpress.org/reference/functions/wp_list_comments/

结束