当前位置: 首页 > 其它 > Gravatar头像多种加速方案,提升WordPress速度

Gravatar头像多种加速方案,提升WordPress速度

其它 24条评论 2014-11-20 20,615 views

最近Gravatar头像被墙,导致绝大部分wordpress博客都受到此影响,加载非常的缓慢,小z博客之前分享过一篇《开启Gravatar头像缓存,解决WordPress加载缓慢》的教程,后来发觉并不算很完善,经过几天的分析后用这篇文章做个总结,希望对大家有帮助。

方法一、gravatar-fixed插件

先来最简单的办法,直接使用gravatar-fixed插件就可以对Gravatar头像进行缓存,这个插件由WPCEO出品功能是修正Gravatar服务器无法正常访问的情况,并且可以自定义Gravatar服务器地址。小z已经启用默认的缓存服务器0.bsdev.cn,所以安装此插件后无需额外的设置便能感受到速度的提升,非常适合新手。

dfgravatar
图1-1 gravatar-fixed插件设置
点此下载:gravatar-fixed.zip

方法二、使用小z博客提供的缓存(推荐)

小z博客在忍受Gravatar头像被墙的痛苦后,利用自己的海外服务器反代了Gravatar头像,并且使用了七牛云存储的加速服务,免费提供给各位网友使用,只需将下面的代码添加到主题目录的functions.php中即可体验到加速。

//Gravatar缓存头像
function xiaoz_get_avatar($avatar) {
    $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),
"0.bsdev.cn",$avatar);
    return $avatar;
}
add_filter( 'get_avatar', 'xiaoz_get_avatar', 10, 3 );
//缓存头像END

方法三:缓存到本地(海外主机用户使用)

在前一篇文章中小z也分享过此方法,但是忽略了个重要的问题是Gravartar被墙,国内主机是无法缓存到本地的,所以此方法仅适用于海外主机的用户,如果你的海外主机速度不够快建议使用方法一或方法二。

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');

方法四:关闭头像功能

这个做法显得有些极端,但却有效,对要求不是特别高而又不想折腾的用户可以在后台->设置->讨论->将头像显示的勾去掉即可,这样速度就杠杠的啦。

showtouxiang
图4-1 关闭头像显示

目前可用的缓存服务器有0.bsdev.cn(由小z博客提供),cd.v7v3.com(由V7V3提供),当然了可能还有更多,使用同一个缓存服务器的用户越多那么二次加载的时候就越快。

特别提醒:使用多说的朋友注意了,多说本身有自己的缓存服务器,但是不知什么原因,多说最近很多头像回源了(向官方反应,但是没有收到任何结果),因此使用多说的朋友也会感觉到加载缓慢,表现为部分头像回源后无法加载,如下截图。另外上面的所有方法对启用多说的用户均不能奏效,必须停用多说才能起到作用,暂时还没想到两者并存的方法(没办法,小z也用回自带评论了),还请见谅。

huiyuan
多说部分头像回源

24 条评论 “Gravatar头像多种加速方案,提升WordPress速度”

  1. gibbonyang说道:

    直接整站https, 就不用做任何处理啦

  2. jerome说道:

    为什么我本地缓存弄好以后其他人的头像都没问题,
    我自己的头像不管怎么在Gravatar官网改,
    在我自己的网页上都显示的都是那个传到avatar文件里默认的default.jpg头像…
    好纠结。。。

    1. 小z说道:

      因为gravartar被墙缓存到自己服务器的话只有海外主机适用,另外你清除下浏览器缓存试试呢。

  3. Starduster说道:

    使用 HTTPS 的 gravator ,加入以下代码到当前Wordpress主题的functions.php文件中:

    1
    2
    3
    4
    5
    
    function get_gravatar_back( $avatar ) {
        $avatar = str_replace( array( 'http://www.gravatar.com', 'http://0.gravatar.com', 'http://1.gravatar.com', 'http://2.gravatar.com' ), 'https://secure.gravatar.com', $avatar );
        return $avatar;
    }
    add_filter( 'get_avatar', 'get_gravatar_back' );
    1. 小z说道:

      感谢您提供的新方法

  4. 王花郎说道:

    我是把http换成了https。。。
    哎,天朝~

    1. 小z说道:

      嗯,目前https的链接还可以用。

  5. 伤心的笔说道:

    非常感谢楼主的方法!gravatar-fixed插件感觉很不错

    1. 小z说道:

      gravatar-fixed非常的方便,直接启用即可。

      1. 伤心的笔说道:

        是的。唯一纳闷的是,目前网络上的更改Gravatar头像地址的方法对多说插件的最近访客小工具均无效。很郁闷

        1. 小z说道:

          嗯呢,我也发现了,而且最近多说部分头像还被回源了,如果使用了多说上面的代码仅对后台生效。

          1. 伤心的笔说道:

            我现在用gravatar-fixed插件,输入的多说的gravatar地址。
            我向多说的人反映这个情况,他们还爱答不理的。

        2. 小z说道:

          我并不建议你输入多说的缓存地址,因为有些根本缓存不了,我也向多说反应了,毫无回应。

  6. 小小说道:

    额。看看以下代码 会不会有什么想法

  7. Sven说道:

    不知道我的网站头像是不是正常显示,用的还是很久以前的willin kan的代码

    1. 小z说道:

      我看了一下,你的是缓存到本地,成功了的。

  8. Vans爱好者说道:

    国内主机有没有办法既缓存在服务器,又换成你那链接的?你那个是直接用七牛镜像了gavatar官网吧?

    1. 小z说道:

      国内主机无法建立缓存,直接被墙了,我的那个缓存服务器不是七牛直接镜像的(貌似七牛直接镜像也有压力),我是利用自己的海外服务器反向代理了Gravatar,然后再用七牛镜像这台服务器,不仅减轻了服务器压力,还拥有了多个CDN加速,所以可以放心使用。

      1. Vans爱好者说道:

        哈哈,好厉害的想法,妥妥的用了这个!的确,七牛估计在墙内,想要直接镜像gravatar也会比较难。

    2. 小z说道:

      另外贵站加载了谷歌字体,导致加载缓慢。不知你是使用的国内主题还是国外主题呢?通常情况下这个方法能够解决:http://www.xiaoz.me/archives/3335,如果此方法还行不通就得从源码入手了。

      1. Vans爱好者说道:

        诶,我貌似在后台禁用了的啊,没成功么?

        1. 小z说道:

          没有成功,用F12帮你查看了一下。可能是由于主题的原因,看来得从源码中来找了,可以加我QQ:337003006

  9. 迅哥儿说道:

    看起来不错~

发表评论

电子邮件地址不会被公开。 必填项已用*标注