Gravatar头像不显示完美解决方案

2014年11月18日20:33:4243,865,7185

Gravatar头像已经成为了博客、论坛等非常流行的通用头像,他能使你的网站的留言者根据自己的邮箱匹配不同的Gravatar头像。但不可否认的是Gravatar头像的服务器及缓存服务器位于国外,由于受到了干扰,国内无法打开Gravatar头像服务器及缓存服务器,导致了Gravatar头像无法显示,这样严重的拖累了网站的打开速度,甚至会因为一篇文章的留言非常多,需要加载几百个Gravatar头像图片,大量HTTP请求的发送,直接导致了网页加载缓慢、网站出现打不开的现象。

Gravatar头像不显示完美解决方案

一、在当前Gravatar头像服务器被墙的情况下,要想要加快Wordpress显示Gravatar头像的速度,我们可以做那些努力呢?通常的做法大致有以下几种:

1、首先可以做的就是将Gravatar头像图片缓存到自己的虚拟主机或者VPS上,这样用户访问的就是直接读取自己服务器的图片文件。好处是访问的本地图片,图片的加载非常快!缺点也是显而易见的:运行一段时间后,大量的Gravatar头像图片会占用非常多的空间,过多的图片导致服务器压力骤增。

2、安装插件:插件有二大类,一类是wordpress评论Gravatar头像缓存插件,原理和弊端同上。另外一类就是替换Gravatar头像服务器及缓存服务器地址,但仍然连接到Gravatar头像服务器及缓存服务器。

3、禁用Gravatar头像。很多的博主因为Gravatar头像现实的不稳定,间断抽风,已经取消了Gravatar头像在博客的显示,一劳永逸。但评论是一种交互方式,没有头像显示的评论,对网站美化来说就是一块硬伤。

4、无插件实现Gravatar头像的显示。网上介绍的这类方法,基本上都需要修改Wordpress的文件,如果遇到Wordpress更新,修改的文件会被替换掉,那么就需要再次进行修改。。伤不起的手工活啊!!

二、Gravatar头像不显示完美解决方案

有没有一种方案能完美的解决我们的这些烦恼呢?答案是肯定的。提升Wordpress的Gravatar头像加载速度进阶的方法就是将Gravatar头像的服务器变为国内的,放在国内知名公司的服务器上或者专业的CDN服务器上。经过测试我们发现多说调用的Gravatar头像可以正常显示。猜测可能多说可能为了用户的体验而架设了一台Gravatar国内的中转服务器,那么福音来了,只需短短几行代码就可以彻底告别Gravatar被墙的困扰。本篇文章就来介绍此种方法。

方案一:

1、方法的原理是:官方Gravatar的头像所在的路径一般都是

  1. gravatar1.233.wiki、0.gravatar.com、1.gravatar.com、2.gravatar.com

我们只需要将这些头像默认的URL换成多说的就行了。

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

  1. //多说官方Gravatar头像调用
  2. function mytheme_get_avatar($avatar) {
  3.     $avatar = str_replace(array("gravatar1.233.wiki","gravatar0.233.wiki","gravatar0.233.wiki","gravatar1.233.wiki"),"gravatar.duoshuo.com",$avatar);
  4.     return $avatar;
  5. }
  6. add_filter( 'get_avatar', 'mytheme_get_avatar', 103 );

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

Gravatar头像不显示完美解决方案

方案二:

4、官方Gravatar头像调用ssl头像链接 。

https还是没被墙的,而且速度还不错,直接调用这个最简单了。

如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码:

  1. //官方Gravatar头像调用ssl头像链接
  2. function get_ssl_avatar($avatar) {
  3.    $avatar = preg_replace('/.*/avatar/(.*)?s=([d]+)&.*/','<img src="https://gravatar1.233.wiki/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  4.    return $avatar;
  5. }
  6. add_filter('get_avatar', 'get_ssl_avatar');

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  3   博主  1
    • 星空 1

      奇怪,在你这儿显示,我本地不显示

      • 星空 1

        我是在本地调试,也按照修改了,仍然还是灰色默认图。
        奇怪,为什么在你这儿可以显示,我本地测试评谈不显示。

        • 小小鱼 0

          怎么按照设置了还是不显示了?gravatar服务器挂了吗? :???: