Gravatar 头像缓存的几种方法

2011.08.14 43 Comments 15,862 次阅读

Gravatar,全称是“Globally Recognized Avatar”,Wordpress等主流的博客系统,基本都是采用Gravatar头像。如需要自定义头像,请点击这里

最近周良穿梭与各个博客之间,发现很多博客的 Gravatar 评论头像无法显示,貌似是被墙了,不知道大家有没有遇到这种情况,周良这里已经惨不忍睹了....

所以,忍不住谢了这篇文章,提供几个缓存Gravatar头像的方法,这样不仅可以防止头像被墙,也可以提高自己网站的载入速度。

 

一、使用插件缓存Gravatar头像

whisperer:全面启用gravatar头像缓存——提供了wp-recentcomments头像启用缓存的方法。

插件1:Gravatar China(下面列举了此插件的一些功能,并附上后台设置截图)

  • Gravatar 头像防墙补丁:替换 Gravatar 头像能正常访问的地址;
  • Gravatar 本地缓存:对特殊的网络环境下给头像进行本地缓存;
  • 自定义设置缓存过期时间;

 

插件2:WP Gravatar Mini Cache

  • 迷你 Gravatar 头像缓存插件;
  • 可以将 Gravatar 头像缓存至本地,以加快加载速度,使其不受 Gravatar 服务器连接速度的影响;

这两个插件都是国内高手写的头像缓存插件,当然都是中文的。周良没有使用这2个插件,前者的后台设置比后者丰富,后者完全是傻瓜型,安装启用后即可看到效果!

 

插件3:Gravatar Local Cache

  • 纯英文操作
  • 一键完成头像缓存

周良使用的是gravatarlocalcache插件,后台很简单,无需改动什么,直接点击Update Options »即可

这个,应该比WP Gravatar Mini Cache简单多了,适合懒人或者Wordpress新手....

 

二、使用代码实现 Gravatar 头像缓存

这个方法是周良无意间在网上看到的,据说效果不错。如果您愿意花几分钟操作的话,那么就接着看下去吧。

  • 先在网站wp-content 的同级目录建立资料夹: /avatar 权限:755, 这是准备gravatar 缓存的路径.
  • 准备一张适合你模板尺寸的默认头像, 名为"default.jpg" 放在此路径.
  • 找到原来的comments.php 或是在functions.php 里的function mytheme_comment($comment, $args, $depth) 会有一段类似这样的语句:<?php echo get_avatar($comment,$size=’50′,$default=’<path_to_url>’ ); ?>
替换成:
<?php
$p = ‘avatar/’;
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .’.jpg’;
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo(‘url’). ‘/avatar/default.jpg’;
$s = ’50′;
$r = get_option(‘avatar_rating’);
$g = ‘https://www.gravatar.com/avatar/’.$f.’.jpg?s=’.$s.’&d=’.$d.’&r=’.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
?>
<img src=’<?php echo $a ?>’ alt=” />

ps对一些主题,这样做之后,可能会使头像没法显示。

这时只要简单的把$p = ‘avatar/’改成$p = ‘/avatar/’

上述修改代码的方法,仅仅对文章页面的评论有效!!

 

如果您使用了wp-recentcomments插件,或是WordPress thread comment,想知道他们如何缓存头像到本地。可以看看下面的两篇文章。

万戈:缓存 Gravatar 头像至本地服务器——提供了WordPress thread comment解决头像缓存的办法。

whisperer:全面启用gravatar头像缓存——提供了wp-recentcomments头像启用缓存的方法。

43 Responses
Comment (20)
Trackback (0)
  • #16
    Snail :

    我的头像为啥一直在右边改不到左边呢?

    2013.05.22 13:50 Reply
    • 周良 :

      css问题吧

      2013.05.24 15:59 Reply
      • Snail :

        嗯,找到了,是主题问题,谢啦

        2013.05.24 18:34 Reply
  • #17
    Snail :

    我的头像为啥一直在右边改不到左边呢?

    2013.05.22 13:50 Reply
    • 周良 :

      css问题吧

      2013.05.24 15:59 Reply
      • Snail :

        嗯,找到了,是主题问题,谢啦

        2013.05.24 18:34 Reply
  • #18
    Sprit :

    我的反正是有时显示,有时不显示。。。

    2012.12.25 13:53 Reply
    • 周良 :

      额...缓存问题吧

      2012.12.31 20:45 Reply
  • #19
    Sprit :

    我的反正是有时显示,有时不显示。。。

    2012.12.25 13:53 Reply
    • 周良 :

      额...缓存问题吧

      2012.12.31 20:45 Reply
  • #20
    yumanutong :

    刚说完,上传了后,网站打不开。立马改回来,还好我有注释

    2012.03.25 02:17 Reply
  • #21
    yumanutong :

    学习了,有空的话交换链接,如果愿意联系我 :cool:

    2012.03.25 02:03 Reply
  • #22
    Iecho :

    我的主题里面自带了图像缓存的插件了

    2011.09.27 15:15 Reply
    • 周良 :

      那就说明你的主题很不错~

      2011.09.30 16:29 Reply
  • #23
    EinCy :

    我用的是插件,方便!

    2011.08.21 13:49 Reply
  • 还没有Trackback
Leave a Reply