被墙后如何替换Gravatar头像默认服务器

龙哥
龙哥
龙哥
1123
文章
35
评论
2015年6月24日14:38:08 4 437 1822字阅读6分4秒

用了知便鸟的主题ality后发现在IE浏览器火其他浏览器时一直头像显示不出来,几个博友也浏览说看不到头像,于是去知便鸟上看了下,有如下解决方法:

利用多说Gravatar头像中转服务器替代头像默认服务器。

将下面代码添加到当前主题functions.php文件中:

  1. function?mytheme_get_avatar(?$avatar?)?{
  2. $avatar?=?preg_replace(?"/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar?);
  3. return?$avatar;
  4. }
  5. add_filter(?'get_avatar',?'mytheme_get_avatar'?);

可惜多说服务稳定性欠佳,有时也会暂时无法显示头像。如编辑已发表的文章,并且文章已有评论,还需要在文章编辑页面打开右上的“显示选项”去掉“评论”勾选,否则在点击更新文章按钮后,还是会向Gravatar头像服务器发送获取头像请求,从而影响页面加载速度。

使用https方式(SSL)调用Gravatar头服务器地址

使用方法同上,将下面代码添加到主题functions.php文件中:

  1. function?get_ssl_avatar($avatar)?{
  2. ???$avatar?=?preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img?src="https://secure.gravatar.com/avatar/$1?s=$2"?class="avatar?avatar-$2"?height="$2"?width="$2">',$avatar);
  3. ???return?$avatar;
  4. }
  5. add_filter('get_avatar',?'get_ssl_avatar');

貌似添加以上代码后,一些头像缓存插件也将失效。

使用Gravatar Fixed 头像修正插件

插件设置页面,将Gravatar 服务器和Gravatar SSL 服务器,全部改为:https://secure.gravatar.com

插件下载页面

另一个比较笨的方法:

打开wordpress程序目录的wp-includes文件夹,找到pluggable.php(WP4.2之前版本)打开,将大约2150至2157行:

  1. if?(?is_ssl()?)?{
  2. ????$host?=?'https://secure.gravatar.com';
  3. }?else?{
  4. ????if?(?!emptyempty($email)?)
  5. ????????$host?=?sprintf(?"http://%d.gravatar.com",?(?hexdec(?$email_hash[0]?)?%?2?)?);
  6. ????else
  7. ????????$host?=?'http://0.gravatar.com';
  8. }

替换为:

  1. $host?=?'https://secure.gravatar.com';

或者(支持头像缓存插件)

  1. $host = 'http://cn.gravatar.com';

WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3604行的:

  1. $url?=?sprintf(?'http://%d.gravatar.com/avatar/%s',?$gravatar_server,?$email_hash?);

修改为:

  1. $url?=?sprintf(?'http://cn.gravatar.com/avatar/%s',?$email_hash?);

之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。

以上方法主要针对使用用国内主机用户,使用国外主机这时优势突显,并不需要修改任何东西,安装头像缓存插件,将头像缓存到本地,并不影响正常使用。

推荐几款Gravatar头像缓存插件:

GravatarLocalCache

FV Gravatar Cache

WP Gravatar Mini Cache

Gravatar Cache

Hacklog Gravatar Cache

fonts.googleapis.com和gravatar.com被墙,严重影响了WordPress用户体验,对新手熟习WordPress的造成极大障碍。

继续阅读
匿名

发表评论

匿名网友 填写信息

评论:4   其中:访客  0   博主  0
    • 派派网 派派网 0

      好给力啊

      • 山猫 山猫 1

        “IE浏览器火其他浏览器”,错别字。“对新手熟习WordPress的造成极大障碍”,多了个“的”?

        • 山猫 山猫 1

          “被强后如何替换Gravatar头像默认服务器”,错别字?

            • 颩ふ 颩ふ

              @ 山猫 哈哈,谢谢!已修改,打拼音得就是这样容易犯错 :razz: