格雷瓦塔。com-远程服务(也称问题)的关键是,服务器上不会发生调整大小的操作。它发生在gravatar的服务器上:
http(s)://*.gravatar.com
See in source - 通过使用名为
s
. 因此,无论您做什么,Gravatar都会以1px到2048px之间的方形图像进行响应:
"$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}";
Gravatar具有
API... 这不行,抱歉让你失望了。
解决方案-解决方案,因此在这种情况下,唯一的解决方案是CSS-BUT ... 您使用完全不同的头像和过滤器:
return apply_filters( \'get_avatar\', $avatar, $id_or_email, $size, $default, $alt );
因此,在理论上(未经测试),您可以执行以下操作:
add_filter( \'get_avatar\', \'wpse139329ResizedAvatar\', 10, 5 );
function wpse139329ResizedAvatar( $avatar, $id_or_email, $size, $default, $alt )
{
$newAvatar = wp_get_image_editor( $avatar );
if ( is_wp_error( $newAvatar ) )
return $avatar;
$newAvatar->resize( 500, 100, true );
$info = pathinfo( $avatar );
$newAvatar->save( $info[\'filename\'].$info[\'extension\'] );
return $newAvatar;
}
无论如何,它应该沿着上面显示的线工作。
缺点是,除了完全关闭Gravatar之外,core不支持任何东西。原因很简单:WordPress。com的所有者与Gravatar的所有者是同一个人。com(以及其他一些公司,如Vaultpress)。因此,您将得到一个Gravatar,它是从服务器远程获取的(包括延迟),然后根本不会使用。
事情没那么糟
实际上是函数
get_gravatar()
是“可插拔的”:
if ( !function_exists( \'get_avatar\' ) ) :
因此,如果您覆盖它,您可以用另一种为用户显示头像的方法来完全替换它。自己制作一个,获取一个插件,等等。