几个月前谷歌被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
来自:http://www.xiaoz.me/archives/5150