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

2015年6月24日 / 网站源码 / 4条 / 5,675次

用了知便鸟的主题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的造成极大障碍。


《被墙后如何替换Gravatar头像默认服务器》有4 条评论

  1. 山猫说道:

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

  2. 山猫说道:

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


提交评论