-->

国内使用Gravatar 头像方案

由于一些众所周知的原因,号称国际通用的头像系统在我国使用起来却越到了不小的麻烦,使用这一系统的国内博客头像就成了鸡肋,如果想要正常的使用也不是不可能的.

第一种方案就是自己的主机来预先存储这些头像,但是前提是你的主机可以连得上gravatar头像的服务器.

这种方案可以通过以下代码实现:


//评论头像缓存
function deel_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 .'.png';
  $t = dopt('d_avatarDate')*24*60*60;
  if ( !is_file($e) || (time() - filemtime($e)) > $t )
copy(htmlspecialchars_decode($g), $e);
  else
$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.png'));
  if ( filesize($e) < 500 )
copy(get_bloginfo('template_directory').'/img/default.png', $e);
  return $avatar;
}
//评论头像缓存结束

然后再相应地方建立一个avatar文件夹就好了.


第二种方案是我推荐使用的,也是我正在使用的:

使用七牛来加速gravatar头像,但是对于国外访问的话可能会慢一些(付费用户就没关系了)


首先,登陆七牛云存储 开发者后台,新建个空间,比如Jeff 新建个名为“gravatar”的空间(要设置为公开),对应的二级域可以在后台查看。


然后,源站加速。点击该空间的“空间设置”—“源站加速”—“一键加速”,输入多说所在的 gravatar.duoshuo.com或者直接输入www.gravatar.com


修改WordPress 的函数。

//Gravatar头像地址替换
function gravatar_cache($avatar){
$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://7u2jb5.com1.z0.glb.clouddn.com",$avatar );
$avatar = preg_replace( "/\?s\=/",".png?s=",$avatar );
return $avatar;}

add_filter( 'get_avatar', 'gravatar_cache' );
//Gravatar头像地址替换结束

刷新你的缓存,目前为止就可以正常显示评论着头像了.

特别说明

由于众所周知的原因,本博客以往文章的图片无法显示,请谅解。

标签

生活纪实 (191) 感想 (114) ingress (54) 软件 (49) 小诗 (35) 梦境 (28) 教程 (21) 科幻 (21) 体会 (20) 杭州 (11) blogger (5) wordpress (5) Google adsense (4) Google voice (3) Chrome (2) Tensorflow (1) 谷粉 (1)