WordPress全球头像Gravatar替换方案(免插件)

WordPress 使用 Gravatar 作为默认的头像平台,Gravatar 能让用户的头像显示在任何 WordPress 的网站上,然而在某些情况下你可能不需要在你的网站上显示 Gravatar 头像,例如,由于某些原因国内的网站无法打开等。所以在国内使用Gravatar是一件非常让人不愉快的事情。

下面给大家分享一个免插件使用 V2EX 的这个 Gravatar 代理加速头像加载的方法。

以前国内就出现过一些网站把国内的东东搬到自己网站上,然后发布给大家用,极大的方便了用户,今天就介绍一个Gravatar的替代器:

要替换的小伙伴只需在自己博客主题的function.php中php结束标签之前加上如下代码即可:

/*替换v2ex的Gravatar CDN*/
function getV2exAvatar($avatar) {
        $avatar = str_replace(array("www.gravatar.com/avatar","0.gravatar.com/avatar","1.gravatar.com/avatar","2.gravatar.com/avatar"),"cdn.v2ex.com/gravatar",$avatar);
        return $avatar;
}
add_filter('get_avatar', 'getV2exAvatar');

当然也可以把上面cdn的地址更换成以下几个:

secure.gravatar.com/avatar
cn.gravatar.com/avatar
gravatar.cat.net/avatar

使用https方式(SSL)调用Gravatar头服务器地址

使用方法同上,将下面代码添加到主题functions.php文件中:

function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

貌似添加以上代码后,一些头像缓存插件也将失效。

使用Gravatar Fixed 头像修正插件

插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com

另一个比较笨的方法:

打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3995至3998行的:

http://%d.gravatar.com/avatar/%s

修改为:

http://cn.gravatar.com/avatar/%s

之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。

以上方法主要针对使用用国内主机用户,使用国外主机这时优势突显,并不需要修改任何东西,安装头像缓存插件,将头像缓存到本地,并不影响正常使用。

Gravatar头像缓存插件推荐

《WordPress全球头像Gravatar替换方案(免插件)》有1条留言

留下评论