当前位置:园子博客 » Wordpress » 缓存 Gravatar 头像到本地最简单的方法

缓存 Gravatar 头像到本地最简单的方法

1月 29th, 2011 | Filed under Wordpress | 共有5,527次浏览

网站默认情况下显示的 Gravatar 头像都是直接调用其服务器上面的资源,Gravatar 服务器有很大的不稳定性,前段时间就在国内造成了大面积的无法访问。今天园子就与大家分享下缓存 Gravatar 头像到本地最简单的方法

在以前的文章中园子也介绍过缓存 Gravatar 头像到本地服务器的一些可行方法,里面提供的方法在现在看到已经有些复杂了。这次分享的是来自 Willin Kan 大师的作品,只需要简单三步就可以实现缓存头像到本地服务器

三步实现缓存 Gravatar 头像到本地

1.在你网站的根目录,也就是与 wp-content 文件夹同级的目录下新建立一个 avatar 文件夹,更改权限为0755(在FTP软件中,右键点击文件夹,选择“属性”或者“CHMOD”即可打开属性窗口,在里面更改权限即可)。这个文件夹就是将来存放 Gravatar 头像的地方。

2.准备一张默认的头像图片,命名为:default.jpg,将其上传到 avatar 文件夹下面。这张图片的作用就是如果用户没有定义过头像,就调用这张默认的头像。这里有园子提供的图片下载

3.将下面的代码复制到你使用主题中的 functions.php 文件中,保存并上传。再次刷新页面,即可看到 Gravatar 头像已经缓存到本地了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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');

当查看图片属性时,看到链接地址形式变为形如:http://www.yzznl.cn/avatar/94edba5ccaf4f54d0891cf3a7b1e1280.jpg 这种样式就缓存成功了。

这种方法是园子见到的最简单的方法,当然,使用插件另当别论了。版权归 Willin Kan 所有,原文请点击这里

小知识:什么是 Gravatar?

Gravatar 的概念首先是在国外的独立 wordpress 博客中兴起的,当你到任何一个支持 Gravatar 的网站留言时,这个网站都就会根据你所提供的 Email 地址为你显示出匹配的头像。如果你不清楚如何自定义 wordpress 头像,可以点击这里查看详细教程

  1. BroTang
    8月 11th, 201107:09

    诶 问下园子 有没有那个蓝色的默认头像图标

  2. 蜗牛
    8月 7th, 201113:09

    原来还可以这样,不错,有需要再试试。

  3. fly2top@qq.com
    7月 27th, 201123:40

    fly2top@qq.com我用这个试了不行。

  4. 自在
    6月 17th, 201115:50

    很不错的方法,学习了

  5. 倡萌
    4月 8th, 201115:42

    呵呵,园子自己似乎没有用缓存本地啊

  6. ixwebhost
    4月 6th, 201113:24

    原来是缓存呀!其实也无所谓了,我倒是喜欢用对方的网站缩略图来显示一下

  7. holy’lab
    2月 17th, 201112:50

    不错

  8. liveasx
    2月 17th, 201103:12

    有时间试试!

  9. www.aini1999.com
    2月 11th, 201111:17

    给博主拜年啦! 博主快拿红包,哈哈

  10. 不是吧,又是该代码。有没有插件?

  11. 万戈
    2月 6th, 201111:55

    Willin 大师的精品之作,顶~

  12. 战歌网
    2月 1st, 201112:27

    真给力。学习了。

  13. 聊IT评论网
    1月 30th, 201122:56

    不喜欢缓存,要是别人改头像了,就看不了了

  14. 七七
    1月 29th, 201122:49

    来关注学习了!

  15. Louis Han
    1月 29th, 201122:43

    国内访问我的博客还不一定比Gravatar网站快

  16. 韩国
    1月 29th, 201115:45

    文件用什么方式打开,不会。

  17. 博客之家
    1月 29th, 201113:53

    这个要学习一下。

  18. 小黑
    1月 29th, 201113:09

    很不错。。我学习了很多

  19. 小黑
    1月 29th, 201113:08

    很不错。我学到了很多

  20. 阿修罗
    1月 29th, 201111:39

    先来做个沙发,呵呵!

您必须在 登录 后才能发布评论.