几个月前谷歌被GFW屏蔽,而WordPress从谷歌加载字体,导致异常缓慢,如果还没有解决的请看这里。而最近发现自己的博客速度又开始变得缓慢起来,使用F12检查原因,发现世界头像Gravatar又被屏蔽了,so开启Gravatar头像缓存,提高WordPress速度已经迫不及待。
方法一:多说缓存(不推荐)
将下面的代码添加到主题目录中的functions.php文件中,代码的作用是将Gravatar头像资源全部替换成国内多说的Gravatar头像镜像服务器上,这个方法是比较简单的一种。
function v7v3_get_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),
"gravatar.duoshuo.com",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'v7v3_get_avatar', 10, 3 );
方法二:V7V3缓存
只是将缓存服务器替换为了V7V3的,也不知道使用的人多了V7V3能否扛得住,还是将代码添加到主题目录的functions.php文件中,然后保存。
function v7v3_get_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),
"cd.v7v3.com",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'v7v3_get_avatar', 10, 3 );
方法三:本地缓存
这个方法相对前两者稍微复杂一些,不过这个使用本地缓存可能更加的稳定,也不用担心被服务商屏蔽而导致不能加载。
1.在网站根目录新建一个名为avatar的文件夹。(权限改为755或777),部分VPS用户需要将用户组修改为www
2.新建默认的头像图片,名为default.jpg并放入avatar文件夹中。
3.将以下代码加入到当前使用的主题的functions.php文件中。
function v7v3_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //设定还缓存时间14天,单位为秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //头像超过设定时间或不存在则更新
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'v7v3_avatar');
目前小z博客使用了多说社会化评论插件,不用担心前台加载Gravatar头像的问题(使用多说插件后头像会自动缓存到多说服务器),可是后台并不起作用,因此我使用了方法三来解决这个问题。最后感谢V7V3提供的方法,更多方法请查看:Gravatar头像多种加速方案,提升WordPress速度,若有问题可直接加我QQ:337003006
其实WordPress博客用户可以将下面代码添加到当前主题的functions.php文件中就可解决Gravatar头像不显示问题。
这应该也是你自己在用的缓存吧,感谢分享。
是的,我自己也在用(配合七牛搭建)
其实本地缓存只适合 海外主机, 因为国内主机 已经无法访问官方头像了. 目前我在用多说的头像库. . . 我总觉的用人家的不是太好. .
嗯嗯,自己搭建缓存服务器也是不错的。
多说服务器3天抽风一次
昨晚多说抽风比较厉害,所有使用多说服务的留言板都无法加载,现在已经恢复。
涨姿势~
我架的节点还使用智能解析,同时使用了七牛和百度云加速进行加速,节点很多。不用担心会宕机,多说的由于服务器在国内的原因所以大部分未缓存的头像会出现502超时状况
目前有一大批用户已经使用了奶嘴哥提供的缓存服务
好厲害!!
替换为多说的确实不行 还是被墙 替换为V7V3的就可以
v7v3比多说稳定不?我替换了多说,有几个头像显示不出
顺便分享一下我的缓存服务器也可以用哦,0.bsdev.cn
我已经用了多说了,Gravatar头像加载起来确实慢。另外做个友链,小Z意下如何?星空精品屋的。
头像缓存对于性能不好的服务只会更慢吧,感觉替换成多说服务器会比较好
我前台多说,后台本地,多说的服务器偶尔也会抽风,也可以自己使用七牛来缓存。
嗯
还有我发现我的博客木有影响。速度还是可以的。
呵呵,GFW就是叼,我无力吐槽。