简单实现Gravatar 头像本地服务器缓存

         Gravatar 头像缓存的问题一直困扰着启用了Gravatar 头像的博主们,都希望把Gravatar 头像缓存在本地服务器,才不会在调用Gravatar 头像的读者墙那样,一打开就像放电影一样一个个的加载,这可怎么能受得了。怎么才能简单实现Gravatar 头像缓存呢,参照网上方法自己DIY代码吧,又太繁琐了——爱折腾的会很乐意。

还是推荐一个插件吧:mini-gravatar-cache(点击下载)
然后上传到主题plugins
最后在后台启用就OK,就这么简单。

function get_avatar_wcache($imgc) {
 $ava_time = 1209600;
 $ava_dir_abs = ABSPATH.’wp-content/plugins/mini-gravatar-cache/iava/’;
 $ava_dir_url = get_bloginfo(‘wpurl’).’/wp-content/plugins/mini-gravatar-cache/iava/’;
 preg_match(‘/avatar\/([a-z0-9]+)\?s=(\d+)/’,$imgc,$imgc_md5);
 $ava_mail_md5 = $imgc_md5[1];
 $size = $imgc_md5[2];
 $ava_img_abs = $ava_dir_abs.$ava_mail_md5.’.jpg’;
 $ava_img_url = $ava_dir_url.$ava_mail_md5.’.jpg’;
 $ava_default = $ava_dir_url.’default.jpg’;
 if (!is_file($ava_img_abs)||(time()-filemtime($ava_img_abs))>$ava_time){
  $ava_get_url = ‘http://www.gravatar.com/avatar/’.$ava_mail_md5.’?s=48&d=’.$ava_default.’&r=G’;
  copy($ava_get_url,$ava_img_abs);
 }
 if (filesize($ava_img_abs)<500) {
  copy($ava_default,$ava_img_abs);
 }
 return ‘<img src=”‘.$ava_img_url.’” width=”‘.$size.’” height=”‘.$size.’” />’;
}
add_filter(‘get_avatar’,’get_avatar_wcache’);

这就是整个插件的代码,解释下:

  • 下载的缓存图像在  wp-content/plugins/mini-gravatar-cache/iava/  下。
  • 头像保存的文件名是你邮箱的MD5值,其实就是你头像在gravatar官方上URL的一段。
  • 头像不存在或超过1209600秒,就是14天才更新。
  • 如果没头像呢就显示默认头像。(这不废话么)
  • width,height这个可以自己改哈,不过也没什么意思。

原理很简单,想DIY的就自己在上面DIY吧~不想的就直接用吧~

评论

《 “简单实现Gravatar 头像本地服务器缓存” 》 有 17 条评论

  1. 学夫子 的头像

    emlog,应该都是一样的原理

    1. hesiway 的头像
      hesiway

      @学夫子, 恩恩~可以移植过去~

  2. 灵亦rEd 的头像

    :纠结: :纠结:

    1. hesiway 的头像
      hesiway

      @灵亦rEd, :嘻: :嘻:

    1. hesiway 的头像
      hesiway

      @海建.李, :微笑:

  3. ugotta 的头像

    没必要吧,觉得挺快的还是,,, :纠结:

    1. hesiway 的头像
      hesiway

      @ugotta, 头像多了就卡~现在用了还好点~ :微笑:

  4. 朵未 的头像

    我也用了一个插件,是荒野无灯的,不过貌似这个小点。

    1. hesiway 的头像
      hesiway

      @朵未, 这个真的很小,而且不用修改啥~方便多了~ :嘻:

  5. 诸葛小小 的头像

    用了感觉服务器 被拖累了。。。

    头像放gravatar那里,速度还是挺快的

    插件禁用了。

    1. hesiway 的头像
      hesiway

      @诸葛小小, 额~这个看来也是问题哈~ :汗:

  6. 迎接 的头像

    安装成功,激活的时候,显示:插件的头部错误。

    1. 迎接 的头像

      @迎接, 好像php版本的问题,主机还是php4的,可怜“`

      1. hesiway 的头像
        hesiway

        @迎接, :尴尬: 还有这样啊~好吧~

  7. C瓜哥 的头像

    支持WP3.0不?

  8. dengmin 的头像

    有些人博客上启用缓存后头像都变得很模糊