目前国内访问Gravatar头像服务器速度感人,极大的影响了页面的加载速度。
也尝试了网上不少插件和方法,但是很多都长时间没更新,或者已经失效了。
下面这个方法亲测目前仍有效,可以把cn.gravatar.com镜像到七牛,速度有很大的改观。
将下面代码添加到当前主题functions.php文件中

//加速Gravatar头像
function mytheme_get_avatar( $avatar ) {
$avatar = preg_replace( "/https:\/\/(cn|\d).gravatar.com/","https://dn-qiniu-avatar.qbox.me",$avatar );
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar' );

如果没有用https,把代码里面的https修改为http即可。

上面这个方法可以把文章内的头像服务器都替换成国内的镜像服务器,但是如果已经登录的用户右上角头像并不能替换,还是有点影响速度。
可以用下面这个办法全部给替换了。
打开/wp-includes/link-template.php,最新版本的WordPress(5.3)大概在4228行至4232行。(请提前备份link-template.php

if ( is_ssl() ) {
$url = 'https://secure.gravatar.com/' . $email_hash;
} else {
$url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
}

替换为

if ( is_ssl() ) {
$url = 'https://dn-qiniu-avatar.qbox.me/avatar/' . $email_hash;
} else {
$url = sprintf( 'https://dn-qiniu-avatar.qbox.me/%s', $gravatar_server, $email_hash );
}

优点是彻底更换,而且不用插件。
缺点是每次升级完WordPress后都要再替换一次。

如果某天https://dn-qiniu-avatar.qbox.me/ 失效,可以自己再找个镜像服务器,把地址替换下即可。


HANDONG.NET