分享>EveryThing . Here is orzblog.

Gravatar头像服务被墙打不开解决方法

也不知道什么时候开始,Wordpress一直以来都依赖的Gravatar头像服务被我们伟大的防火墙给墙了,笔者只能说迟早有一天我国成为全世界最大的局域网,由于这个原因很多博客使用了Gravatar头像在前台显示的比如好友墙读者墙啥的wordpress博客打开后就一直在加载…

3种解决Gravatar打不开不显示的方法:

Duoshuo头像调用、使用本地缓存、使用SSL方式调用头像,其中笔者比较推荐的是duoshuo的头像调用,SSL方式由于依然使用国外服务器所以速度上依然不是很快。

 Gravatar头像服务被墙打不开解决方法

调用多说Gravatar头像

后台 -> 外观 ->编辑 选择functions.php,在底部加入以下代码(注意在最后一个?>之前)

function duoshuo_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', 'duoshuo_avatar', 10, 3 );

使用本地缓存调用Gravatar

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

同上,加入functions.php文件中,不过有一个问题就是国内主机无法使用,香港主机、日本主机、美国主机等可以使用。

使用SSL调用Gravatar头像

function get_ssl_avatar($avatar) {
   $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);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

测试中速度依然不尽如人意,没办法毕竟我大防火墙!

注册Gravatar

如果现在想不翻墙注册Gravatar又该怎么办呢,很简单打开 cn.gravatar.com 就可以啦,貌似是唯一还能打开的Gravatar啦!不过由于启用了Google字体加载速度也是醉醉的。

当然你也可以翻墙上Gravatar去,具体可以使用本站曾推荐的:SQSX

转载ORZBLOG任意文章敬请保留源文章链接及本站链接:Orz::Blog » Gravatar头像服务被墙打不开解决方法

Gravatar头像服务被墙打不开解决方法
1 vote, 5.00 avg. rating (96% score)
分享到:更多 ()