由于一些众所周知的原因,号称国际通用的头像系统在我国使用起来却越到了不小的麻烦,使用这一系统的国内博客头像就成了鸡肋,如果想要正常的使用也不是不可能的.
第一种方案就是自己的主机来预先存储这些头像,但是前提是你的主机可以连得上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头像地址替换结束
刷新你的缓存,目前为止就可以正常显示评论着头像了.
第一种方案就是自己的主机来预先存储这些头像,但是前提是你的主机可以连得上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头像地址替换结束
刷新你的缓存,目前为止就可以正常显示评论着头像了.