Gravatar头像缓存到本地服务器

2015-12-15发布在 Wordpress4698 次访问

tyrion-lannister

本来懒得写,但是有人问起,说网上找的代码不行,所以我就写个简单的教程,网上已有大把教程,都几乎大同小异。本地缓存 Gravatar头像的方法来自于 Willin Kan(昔日的WP大神)。把以下代码粘贴到 wordpress 主题文件根目录下的 functions.php 文件里。

//评论头像缓存在本地服务器
 function liao_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 = 7*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) < 200 ) 
 copy(get_bloginfo('template_directory').'/img/default.png', $e);
 return $avatar;
 }
 add_filter('get_avatar', 'liao_avatar');
  • 1)在wordpress程序根目录下建一个 avatar 文件夹,右键“属性”,给予777权限;
  • 2)在你使用的 wp 主题文件夹下新建一个 img 文件夹,放一个默认的 default.png 头像图片;
  • 3)尽量用 notepad++ 等代码编辑器打开 functions.php。代码贴 functions.php 里面,注意粘贴位置,在文件最后一行 ?> 结束号上面一行粘贴即可。

OK,生效之后,所有 gravatar 头像图片会保存在你 wordpress根目录下的 avatar 文件夹里并缓存7天(7*24*60*60)。

eg:https://www.liaosam.com/avatar/e30c07921e17e382a0561e90f47f3baf.png

本地缓存生效之后,默认情况下头像缓存7天,这是我觉得比较合适的时长。你也可以根据需要,更改上面代码中的 $t。比如改成:14*24*60*60,或者直接写数值:1209600。

如果你换了头像,想即刻更新本地缓存的头像图片,那么只要把 $t 改成 $t=60; ,上传 functions.php 覆盖。
等60秒刷新之后,就会全部清空本地缓存的 gravatar头像,重新读取并保存本地。这样你的新头像图片就显示OK了。
当刷新OK后,记得再次改回 7*24*60*60。

你还可以开启七牛 CDN 存储或者其他第三方云加速服务,把头像缓存到七牛,这样可以减少你的主机的请求量。
不过如果你和我一样用的是 VPS,那么这点压力基本可忽略不计。

分享到微信朋友圈

LiaoSam
LiaoSam
外贸综合症患者

相关文章

    暂无

10条评论

发表我的评论

取消评论

邮箱白名单说明:最近料网自动提醒邮件经常会被一些邮件服务商拦截。为了您顺利并及时地收取留言被回复的提醒邮件,请在您邮箱中把料网 liaosam.com 加入白名单域名。

已读说明
设为私密评论
添加表情

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

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
呃,评论有点多呢... 料网小秘书为您玩命加载中...
  1. #3

    :cry: 我试着弄了下,未能弄出来,真汗。博主目前使用的是什么方法,能够指点一二呢?不尽感谢!

    11个月前 (10-18)回复
  2. #2
    Maaaaaaaaax

    试试看 :razz:

    2年前 (2015-12-23)回复
  3. #1

    可惜Willin Kan不玩Wordpress了,现在的好多东西都是Willin Kan开创的。这段代码还是挑主题的,有的主题就不适用,小白的话还是用插件来缓存头像吧,简单

    2年前 (2015-12-16)回复
    • LiaoSam
      Liaosam,外贸综合症患者。
      @aunsen 是的,他是元老级的人物了。退出也是因为 WordPress 无可救药的臃肿,可能他那样的人比较追求极致吧。不过我还是比较喜欢 WordPress 的。
      就好比大多数人建英文企业网站选国外 WordPress 主题,会首选 Multi-purpose Themes,因为功能非常强大,适用于各类型网站。有人会说:“不喜欢 Multi-Purpose 的主题。我只是要建一个企业网站,需求比较固定,用不到各类牛逼的功能。虽然强大,但是我不需要,我需要的是 specific purpose 的主题”。问题是,你能淘到几个特别好的 specific purpose 的主题?你有多少精力去逐个找寻并试验适合不适合?好的 specific purpose 适用范围有限,就决定了在网络上传播范围同样有限。当你去找并且试用了一圈以后可能你会说,看来 custimzed theme 才是最好的选择。折腾半天,都是白白浪费时间和精力。
      我原来有打算从 WordPress 转到 emlog 去,现在想想也许觉得不合适又会转回 wordpress,所以干脆不折腾了。
      2年前 (2015-12-16)回复
      • @Liaosam 擦!居然打了这么多字!WordPress是奔着CMS去的,单纯只用做blog的话的确是有些臃肿,现在的纯静态blog程序也是遍地开花,体验都还不错。现在的大环境好多了,搁几年以前大前端的主题敢卖799?不被人喷死才怪
        !收费主题现在也是越来越多了,然而不要脸的人更多!

        2年前 (2015-12-16)回复
        • LiaoSam
          Liaosam,外贸综合症患者。
          @aunsen 哈哈,是啊。我现在就是作为 CMS 在用,单纯做 blog 感觉 emlog / typecho 更好些。我对中文主题没太大的兴趣,折腾英文主题比较多 :lol:,基本接触不到那些不要脸的。我只知道某人搞 xx大学,但RP不太好,名声臭了。
          2年前 (2015-12-16)回复
          • @Liaosam 收到回复邮件了!最不要脸的是拿收费主题破解了然后再卖钱的!

            2年前 (2015-12-16)回复
            • LiaoSam
              Liaosam,外贸综合症患者。
              @aunsen 这种还算好的。之前还在欲思的WP群里看到有人吐槽那些破解了DUX主题拿来卖钱,有不少人买源码但付钱后直接被拉黑。
              2年前 (2015-12-16)回复
              • @Liaosam 居然还有人这么干,真是林子大了。。。

                2年前 (2015-12-16)回复
    • @aunsen Willin Kan不玩wp确实可惜了,以前还有挂着个typecho,现在连那个都没了。

      2年前 (2016-03-01)回复