欢迎使用自行搭建的贴吧云签到;如发现本模板问题请告诉我,thx

国内使用Gravatar 头像方案

wordpress honeyshine 3043℃ 0评论

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

第一种方案就是自己的主机来预先存储这些头像,但是前提是你的主机可以连得上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 头像方案

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

国内使用Gravatar 头像方案

修改WordPress 的函数。

//Gravatar头像地址替换
function gravatar_cache($avatar){
$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://你自己的七牛镜像地址",$avatar );
$avatar = preg_replace( "/\?s\=/",".png?s=",$avatar );
return $avatar;}

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

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

转载请注明:记忆反射弧 » 国内使用Gravatar 头像方案

喜欢 (4)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(16)个小伙伴在吐槽
  1. 如果是typecho,该咋整
    aisin2015-01-13 20:16 回复
    • 只要是gravater,原理是一样的,把域名地址替换就好了,那个函数就是自动把1.gravatar.com和0.gravatar.com和www..gravatar.com替换成7u2jb5.com1.z0.glb.clouddn.com。我不知道typecho是怎么替换,实在不行就手动替换试试?
      honeyshine752015-01-13 20:29 回复
  2. 目前的话,调用ssl 头像链接 这个方法也不错:https://cyhour.com/gravatar-qiang-ssl.html
    大肥羊2015-01-14 09:43 回复
    • 好的,我去看看,我目前你们的头像都可以正常显示,可是我自己的不行,不知道为何
      honeyshine752015-01-14 09:45 回复
  3. 还是本地缓存吧,方法多多
    恋羽2015-01-14 15:17 回复
    • 我试过了,可是我的主机在国内,本身就无法访问gravatar,一开本地缓存就几乎瘫痪,不知为何,才采用七牛的
      honeyshine752015-01-14 15:19 回复
  4. 不错的办法,收下了。。。
  5. 无意间闯进,顶个!
    seo2015-04-19 15:52 回复
  6. WP新手,想请教一下 方法一的代码具体放哪里,然后目录怎么建法?
    bihell.com2015-04-23 23:19 回复
    • 代码放在 主题.php里面目录放在根目录里面就可以其实还是建议用第二个方法,省流量啊
      honeyshine752015-04-24 18:39 回复
  7. [啊] 不错的网站,很喜欢
    电商是什么2016-03-29 08:28 回复