提升WordPress的Gravatar头像加载速度方法:缓存本地化国内服务器

WordPress   2023年10月09日 12:35  

提升Wordpress的Gravatar头像加载速度方法:缓存本地化国内服务器

Gravatar头像已经成为了博客、论坛等一种非常流行的通用头像,不管是Wordpress还是Z-Blog、TypechoEmlog等,留言或者登录注册等都支持Gravatar头像,拥有一个Gravatar头像已经成为草根博主一种必选项目。

每位留言者根据自己的邮箱会显示不同的Gravatar头像,如果一篇文章的留言者非常多,比如几百个以上,就会显示几百个Gravatar头像图片,图片越多,HTTP请求也就越多,容易导致网页加载缓慢、网站出现打不开的现象。

另外一个不容忽视的问题是Gravatar头像的服务器全部位于国外,由于受到各种因素的影响,有时国内是无法连接到Gravatar头像服务器上,也就是无法显示Gravatar头像,大量的无法显示的图片会导致网页直接打不开。

基于以上两个原因,部落已经看到了不少的有名气的博客已经取消了显示Gravatar头像,目的就是为了最大限度地加快网页的加载速度,毕竟在浏览网页内容和留言两者之间,获取网页内容才是第一位的,评论只是一种交互方式。

在当前Gravatar头像服务器位于国外的情况下,要想要加快Wordpress显示Gravatar头像的速度,首先可以做的就是将Gravatar头像图片缓存到自己的虚拟主机或者VPS上,这样用户访问的就是直接读取自己服务器的图片文件了。

这样做的好处是可以避免Gravatar头像服务器被Q的情况下导致网页无法打开,但是部落用这个方法后发现,过了一段时间后,大量的Gravatar头像图片会占用非常多的空间,且不容易删除。另外过多的图片反而会增加服务器压力。

所以提升Wordpress的Gravatar头像加载速度进阶的方法就是将Gravatar头像的服务器变身为国内的,最好是外链形式,例如放在国内一些大公司的服务器上或者专业的CDN服务器上,本篇文章就来介绍此种方法。

WordPress是一个定制性非常强的博客程序,各种WordPress加速方法也是层出不穷,加速效果不错的方式有:

提升Wordpress的Gravatar头像加载速度方法:缓存本地化国内服务器

一、Wordpress的Gravatar头像图片缓存到本地

1、此方法来自Willin Kan博主,这位在Wordpress很有名气的博主因为讨厌Wordpress程序越来越低效率而毅然决定关站放弃WP的行为,实在让部落觉得敬佩。

2、要想将Wordpress的Gravatar头像图片缓存到本地,先在网站的根据目录新建一个avatar 的文件夹,读写权限设置为755。

Gravatar新建一个文件夹

3、有些留言者的邮箱可能没有注册Gravatar头像,我们需要用到一个默认的图片替代这样的留言者的头像,将一张default.jpg 的图片作为默认头像放在avatar文件夹中。

Gravatar上传一个默认的头像

4、打开你的主题的 functions.php 文件,编辑内容。

Gravatar编辑文件

5、将以下代码复制粘贴到你的functions.php最后,默认的是14天更新一次头像图片,你可以自己修改为更短时间。


function my_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 ) { //當頭像不存在或文件超過14天才更新
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', 'my_avatar');

6、Wordpress的Gravatar头像图片缓存到本地后,图片的路径不再是Gravatar官网的URL了,而是本地服务器的图片地址了。

Gravatar缓存到本地

二、将Wordpress的Gravatar头像缓存到百度BAE空间

1、利用上述方法,Wordpress的Gravatar头像会自动生成图片保存到本地的avatar 的文件夹。

Gravatar自动生成图片

2、看过百度BAE全平台Layer镜像CDN加速安装使用一定可以立即想到将Gravatar头像缓存到百度BAE空间上。

3、利用百度BAE空间的速度可以大量加快图片的加载速度,同时也可以避免过多的图片请求拖慢服务器。

4、因为所有的Gravatar头像图片都保存在avatar 的文件夹中,安装了Wp Super Cache插件的朋友可以直接到后台的CDN选项中将avatar文件目录包含中缓存加速中。

Gravatar在插件中设置

5、还有安装或者使用Wp Super Cache插件的朋友,请参考:WordPress加速缓存插件WP Super cache安装方法及使用技巧

6、使用百度BAE空间加速后,Gravatar头像图片显示出来的URL就是百度空间上了。

Gravatar放到百度空间上

三、将Wordpress的Gravatar头像缓存到七牛云存储CDN

1、七牛云存储CDN和上面的百度BAE全平台Layer镜像工作原理是一样的,没用过七牛的参考:七牛云存储国内免费CDN加速10GB空间

2、先到七牛中添加你的源网站。

Gravatar添加新的源网站

3、然后在Wp Super Cache中将缓存URL设置为七牛的就可以了。

Gravatar设置的七牛

四、利用多说Gravatar头像国内镜像服务器实现缓存加速

1、上面两种方法操作有点繁琐,图片太多的话缓存到BAE空间或者七牛CDN也要消耗不少的流量,这里再分享一个在 yuxiaoxi.com 博主上的方法:将Wordpress头像缓存到多说Gravatar头像国内镜像服务器。

2、方法的原理是:官方的Gravatar 头像所在的路径一般都是www.gravatar.com、0.gravatar.com、1.gravatar.com、2.gravatar.com 这四个,我们只需要将头像默认的URL换成多说的就行了。

3、打开主题下的functions.php 文件,将以下代码复制粘贴保存即可。


function mytheme_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', 'mytheme_get_avatar', 10, 3 );

4、效果见下图,Gravatar 头像的外链地址已经全部到了多说的国内服务器了。

Gravatar使用多说服务器

5、同理利用此方法,我们还可以在七牛中自己建立一个Gravatar官网头像服务器,然后将以下代码复制到functions.php 文件中,就可以让Gravatar 头像的外链地址变成七牛的CDN了。


function mytheme_get_avatar($avatar) {
    $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"freehao123.qiniudn.com",$avatar);
    return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );

五、Gravatar头像缓存加速方法总结

1、部落在使用Gravatar缓存到本地时发现当用户在Gravatar中更新了自己的头像时或者用邮箱注册了Gravatar头像时,留言后显示的原头像会迟迟得不到更新,因为得等14天内主机才会重新获取新的Gravatar头像。

2、第二种利用多说Gravatar头像国内镜像服务器实现缓存加速貌似有点风险,因为如果用的人多的话,不排除多说会禁止此种方法,毕竟不带来利益的交易谁也不愿意做。当然即使以后禁止了也没有什么可怕的,大不了我们再换回来。

文章出自:免费资源部落 / 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有105 位神马家族成员冒出泡来在农场开始干活了
  • 123 5

    哈哈 沙发 :mrgreen:

    这是农场的第 1 块农田,部落批准 [123] 在[2013-9-30 17:13]开垦完成.
  • shura 3

    直接使用多说

    新人 回复:

    @shura, 前排

    这是农场的第 2 块农田,部落批准 [shura] 在[2013-9-30 17:14]开垦完成.
  • moto 1

    嘿嘿,占个位置

    这是农场的第 3 块农田,部落批准 [moto] 在[2013-9-30 17:28]开垦完成.
  • ivmm 9

    教程不错啊~

    这是农场的第 4 块农田,部落批准 [ivmm] 在[2013-9-30 17:28]开垦完成.
  • Kung 23

    目前博客没人..暂时不需要..

    这是农场的第 5 块农田,部落批准 [Kung] 在[2013-9-30 17:37]开垦完成.
  • 浮世华 3

    出去了一会,居然更新了

    这是农场的第 6 块农田,部落批准 [浮世华] 在[2013-9-30 17:44]开垦完成.
  • 残雪 8

    占个位置

    这是农场的第 7 块农田,部落批准 [残雪] 在[2013-9-30 17:44]开垦完成.
  • Musk 18

    缓存到本地服务器话,几kb图片并发访问将会是磁盘io噩梦

    qi 回复:

    @Musk, 我之前就是缓存了几千个图片,发现网站越来越慢了。

    包子 回复:

    @qi, 其实 gravatar.com 域名很少被*,没有改的必要

    qi 回复:

    @包子, 最近一段是稳定了。

    百家网络博客 回复:

    @包子, 已经被*了~

    包子 回复:

    @百家网络博客, 没有啊

    百家网络博客 回复:

    @包子, 难道又好了?

    这是农场的第 8 块农田,部落批准 [Musk] 在[2013-9-30 17:57]开垦完成.
  • 新人 4

    来晚了

    这是农场的第 9 块农田,部落批准 [新人] 在[2013-9-30 18:13]开垦完成.
  • 大喇叭 16

    good 好

    这是农场的第 10 块农田,部落批准 [大喇叭] 在[2013-9-30 18:14]开垦完成.
  • 任游铭 6

    太爽了!.ga域名有权重!!!![img]https://www.yblog.ga/1111.jpg[/img][img]https://www.yblog.ga/22222.jpg[/img]
    qi能不能做个友链呀

    qi 回复:

    @任游铭, 当然可以。

    任游铭 回复:

    @qi, 我已经在网站上挂上你的链接了

    qi 回复:

    @任游铭, 谢谢,你要不要个域名?你用免费域名建站,也不是办法。如果你真得是想做一个博客的话。GA域名很快就会被百度给K掉。

    任游铭 回复:

    @qi, 就当攒人品嘛。…

    任游铭 回复:

    @qi, 刚发现,权重没了…呜呜呜….域名没钱买呀!

    qi 回复:

    @任游铭, 过一段时间我去抢几个,送一个给你。

    任游铭 回复:

    @qi, 我是不是瞎了!!!

    任游铭 回复:

    @任游铭, 太感谢了!到时候发我邮箱啊!xygdys@gmail.com

    任游铭 回复:

    @qi, 博客最近提交回复有点慢的说

    qi 回复:

    @任游铭, 又慢了?要等几秒?

    任游铭 回复:

    @qi, 好像是5秒以上 PS:我这个人对时间不敏感,应该比以前慢了百分之50

    任游铭 回复:

    @qi, 不对!!!我刚才那条评论,也就是“好像是5秒以上 PS:我这个人对时间不敏感,应该比以前慢了百分之50”这条,用了14秒……

    任游铭 回复:

    @任游铭, 上一条用了17秒…..看来我真的对时间不太敏感

    qi 回复:

    @任游铭, 我自己留言只要几秒。移动?

    王琪亮 回复:

    @qi, 你可以在后台评论,最多三秒,前台评论的jQuery效率比后台Post要慢。

    包子 回复:

    @qi, 也送我,qi 姐姐不能厚此薄彼呀

    qi 回复:

    @包子, 你都卖主机了,还缺域名吗?

    包子 回复:

    @qi, 主机都是非卖品,坐等 qi 姐姐发域名

    任游铭 回复:

    @包子, qi不是男的么?

    包子 回复:

    @任游铭, sometimes

    qi 回复:

    @包子, 公益活动?

    0okmnbvcxzx 回复:

    @qi, 抢是指……活动的时候不要钱注册的…?

    qi 回复:

    @0okmnbvcxzx, 便宜抢注。

    小白菜 回复:

    @任游铭, 我的ga域名之前也被收录了。。

    包子 回复:

    @小白菜, ga和ml都被收了

    这是农场的第 11 块农田,部落批准 [任游铭] 在[2013-9-30 18:18]开垦完成.
  • peascloud 16

    这个代码到处都是。

    这是农场的第 12 块农田,部落批准 [peascloud] 在[2013-9-30 18:45]开垦完成.
  • 包子 19

    @qi 姐姐已经很久没发这么实用的博文了

    qi 回复:

    @包子, 有些人不喜欢WP

    包子 回复:

    @qi, 他们嘴上说不喜欢,还不是一样在用

    NULL 回复:

    @包子, 在用emlog,不喜欢wp做博客,wp都成cms了,空间不大

    这是农场的第 13 块农田,部落批准 [包子] 在[2013-9-30 19:04]开垦完成.
  • babytomas

    paypal 可以绑定中国农业银行的储蓄卡么?

    逗婦乳 回复:

    @babytomas, 貌似不可以

    qi 回复:

    @babytomas, 可以的。

    这是农场的第 14 块农田,部落批准 [babytomas] 在[2013-9-30 19:15]开垦完成.
  • 小白菜 7

    昨天发邮件到freenom了,不知道会不会还我那个域名

    包子 回复:

    @小白菜, 看运气,以前发邮件拿回过.tk的域名

    qi 回复:

    @小白菜, 估计不会。

    小白菜 回复:

    @qi, 也无所谓了,反正那个站点的S-O都被我玩坏了。。

    这是农场的第 15 块农田,部落批准 [小白菜] 在[2013-9-30 21:01]开垦完成.
  • cyqsd 1

    推荐搞不懂博主代码的用户安装一个叫Gravatar China的插件,这个比较方便,并且不拖慢博客速度

    qi 回复:

    @cyqsd, 这个插件我以前也用过,很不错。

    这是农场的第 16 块农田,部落批准 [cyqsd] 在[2013-9-30 21:05]开垦完成.
  • Nin 3

    纯脆的占个位置了

    这是农场的第 17 块农田,部落批准 [Nin] 在[2013-9-30 21:50]开垦完成.
  • 免费部落 16

    我的Gravatar图像一直都没有显示,是何原因?

    包子 回复:

    @免费部落, 邮箱地址有没有大小写的问题?

    qi 回复:

    @免费部落, 估计是你的把头像的等级给设置错了。

    这是农场的第 18 块农田,部落批准 [免费部落] 在[2013-9-30 22:14]开垦完成.
  • 洛克 14

    二〇一三年九月三十日 23:09:04

    这是农场的第 19 块农田,部落批准 [洛克] 在[2013-9-30 23:08]开垦完成.
  • 优搜 9

    这个点打开比白天快多了。。

    qi 回复:

    @优搜, 白天很慢吗?

    这是农场的第 20 块农田,部落批准 [优搜] 在[2013-9-30 23:28]开垦完成.
  • Vsen 4

    刚刚是又被攻击了吗?

    qi 回复:

    @Vsen, 是的,大清早的就宕机了

    这是农场的第 21 块农田,部落批准 [Vsen] 在[2013-10-1 12:51]开垦完成.
  • 嘴角12 12

    话说终于进来了……

    qi 回复:

    @嘴角12, 有人CC

    这是农场的第 22 块农田,部落批准 [嘴角12] 在[2013-10-1 13:44]开垦完成.
  • 洛克 14

    二〇一三年十月一日 14:36:37

    这是农场的第 23 块农田,部落批准 [洛克] 在[2013-10-1 14:35]开垦完成.
  • Aivier 8

    我很想知道真的有这个必要么。。。不用也很快啊,用了反而慢了

    qi 回复:

    @Aivier, 缓存头像图片?

    Aivier 回复:

    @qi, 是的。。。我这里加载92个头像图片只用了2.12s,如果缓存,需要4.03s

    qi 回复:

    @Aivier, 你缓存到哪里了?

    Aivier 回复:

    @qi, 和我在同一个城市的一个主机上,不知道是不是性能问题,Gravatar的服务器不知道为什么响应这么快。。。

    包子 回复:

    @Aivier, Gravatar启用了CDN呗

    qi 回复:

    @Aivier, Gravatar的服务器好点。

    这是农场的第 24 块农田,部落批准 [Aivier] 在[2013-10-1 15:29]开垦完成.
  • 楼上就一傻逼

    这是农场的第 25 块农田,部落批准 [蛋疼哥] 在[2013-10-1 16:51]开垦完成.
  • Small Desert 4

    我就是缓存在主机上,不过各种检测都表示拖慢速度,最近在想办法转移至Gravatar的在线获取–

    qi 回复:

    @Small Desert, 我之前是放在自己的服务器上,后来我也换了。太多图片了,反而导致速度慢了。

    Small Desert 回复:

    @qi, 是的,太多的HTTP请求反而慢了很多

    这是农场的第 26 块农田,部落批准 [Small Desert] 在[2013-10-2 19:13]开垦完成.
  • chenishr

    刚刚用wp搭建了一个网站,学习了。多谢分享

    qi 回复:

    @chenishr, 多加油。

    这是农场的第 27 块农田,部落批准 [chenishr] 在[2013-10-6 17:27]开垦完成.
  • jack 2

    那用另外一个vps专门用来做图片存储和表情存储,可否?

    qi 回复:

    @jack, 可以,没问题。

    这是农场的第 28 块农田,部落批准 [jack] 在[2013-10-8 17:52]开垦完成.
  • wssys

    谢谢分享!

    这是农场的第 29 块农田,部落批准 [wssys] 在[2014-1-30 19:11]开垦完成.
  • m 1

    试试看

    这是农场的第 30 块农田,部落批准 [m] 在[2014-8-4 12:29]开垦完成.
  • 暴博客 3

    我开发了zblog的加速插件,能不能推广下,嘿嘿

    这是农场的第 31 块农田,部落批准 [暴博客] 在[2014-11-15 09:43]开垦完成.
  • 多说那个办法好,mark!

    这是农场的第 32 块农田,部落批准 [Youth.霖] 在[2014-11-15 15:12]开垦完成.
  • 不会跑

    不错哦,很好的,

    这是农场的第 33 块农田,部落批准 [不会跑] 在[2014-12-30 21:27]开垦完成.
  • 不会跑

    我才开始学用wp,我在使用时发现了页面打开慢一是谷歌字体,二是这个头像的问题,那你现在用的是什么方法?谢谢!

    这是农场的第 34 块农田,部落批准 [不会跑] 在[2014-12-30 21:58]开垦完成.
  • Hank船长

    测试一下头像

    这是农场的第 35 块农田,部落批准 [Hank船长] 在[2015-4-18 17:15]开垦完成.
  • 使用Wordpress的朋友,欢迎试用我开发的这个插件
    WP-ReplaceGravatarMirror

    qi 回复:

    @大仁, 博主你的博客打不开。

    大仁 回复:

    @qi, 可能是打错了吧,Github上的下载地址
    https://github.com/limccn/WP-ReplaceGravatarMirror

    qi 回复:

    @大仁, 谢谢,现在可以了。换成多说的后,如果没有头像的邮箱,默认是显示什么?之前修改代码,虽然是替换了,但是没有注册过Gravatar的头像的用户,它的头像显示是X。

    这是农场的第 36 块农田,部落批准 [大仁] 在[2015-7-16 17:50]开垦完成.
  • jljljssd

    尊敬的用户您好:您访问的页面由于未备#案或涉及

    改多说的不行了,还是干掉的好.

    qi 回复:

    @jljljssd, 取消了头像也好,加载速度会很快。

    这是农场的第 37 块农田,部落批准 [jljljssd] 在[2015-7-20 09:13]开垦完成.
  • jack 1

    我来测试头像,很快显示哦,你用的是哪一种方法呢?

    qi 回复:

    @jack, 头像没有用加速,直接连接官网的。

    这是农场的第 38 块农田,部落批准 [jack] 在[2016-4-29 09:56]开垦完成.
  • 西谷

    试试我的图象

    这是农场的第 39 块农田,部落批准 [西谷] 在[2016-6-2 11:46]开垦完成.
  • 英文网赚 17

    最近# fonts和gravatar又被*了,一气之下禁用头像,fonts改用国内某一镜像了。

    qi 回复:

    @英文网赚, 我这边还好,博客对gravatar用了七牛CDN,显示正常。

    这是农场的第 40 块农田,部落批准 [英文网赚] 在[2016-6-12 22:42]开垦完成.
  • 博主,我能直接使用你的七牛头像的cdn么?有没有防盗链啊, :roll: ,我的七牛云不支持https,没*的不能用https了

    qi 回复:

    @yearliny, 可以呀,流量够用了,所以我不设置防盗链。

    yearliny 回复:

    @qi, 嘿~非常感谢。

    这是农场的第 41 块农田,部落批准 [yearliny] 在[2016-12-13 22:13]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部