Wordpress相关

Gravatar头像缓存到本地服务器

料神Sam发布于 2015-12-15阅读 12873 次评论 13

Gravatar 头像缓存到本地服务器-料网 - 外贸老鸟之路

本来懒得写,但是有人问起,说网上找的代码不行,所以我就写个简单的教程,网上已有大把教程,都几乎大同小异。本地缓存 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,那么这点压力基本可忽略不计。

本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。

分享到: 微信 新浪微博 QQ Qzone
料神Sam
识不足则多虑,威不足则多怒,信不足则多言。
SiteGround外贸建站主机优惠券

13条评论

发表我的评论

取消评论

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

我不是机器人
设为私密评论
添加表情

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

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
  • 问题验证:今年年份是?
呃,评论有点多哦.. 请稍等
  1. SimonChrome · Windows 10

    借用宝地,测试头像!哈哈哈

    4年前 (2020-03-19)
    香港
    回复
  2. 夏天烤洋芋Chrome · Windows 10

    非常感谢。搞定了。
    :oops:

    5年前 (2019-04-05)
    云南
    回复
    • Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7
      @夏天烤洋芋 不客气兄台!
      5年前 (2019-04-05)
      安徽
      回复
  3. 我爱动感单车网Chrome · Windows XP

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

    8年前 (2016-10-18)
    广西
    回复
  4. MaaaaaaaaaxMicrosoft Edge · Windows 10

    试试看 :razz:

    8年前 (2015-12-23)
    美国
    回复
  5. aunsenFirefox · Windows 10

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

    8年前 (2015-12-16)
    陕西
    回复
    • Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7
      @aunsen 是的,他是元老级的人物了。退出也是因为 WordPress 无可救药的臃肿,可能他那样的人比较追求极致吧。不过我还是比较喜欢 WordPress 的。
      就好比大多数人建英文企业网站选国外 WordPress 主题,会首选 Multi-purpose Themes,因为功能非常强大,适用于各类型网站。有人会说:“不喜欢 Multi-Purpose 的主题。我只是要建一个企业网站,需求比较固定,用不到各类牛逼的功能。虽然强大,但是我不需要,我需要的是 specific purpose 的主题”。问题是,你能淘到几个特别好的 specific purpose 的主题?你有多少精力去逐个找寻并试验适合不适合?好的 specific purpose 适用范围有限,就决定了在网络上传播范围同样有限。当你去找并且试用了一圈以后可能你会说,看来 custimzed theme 才是最好的选择。折腾半天,都是白白浪费时间和精力。
      我原来有打算从 WordPress 转到 emlog 去,现在想想也许觉得不合适又会转回 wordpress,所以干脆不折腾了。
      8年前 (2015-12-16)
      美国
      回复
      • aunsenFirefox · Windows 10

        @Liaosam 擦!居然打了这么多字!WordPress 是奔着 CMS 去的,单纯只用做 blog 的话的确是有些臃肿,现在的纯静态 blog 程序也是遍地开花,体验都还不错。现在的大环境好多了,搁几年以前大前端的主题敢卖 799?不被人喷死才怪
        !收费主题现在也是越来越多了,然而不要脸的人更多!

        8年前 (2015-12-16)
        陕西
        回复
        • Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7
          @aunsen 哈哈,是啊。我现在就是作为 CMS 在用,单纯做 blog 感觉 emlog / typecho 更好些。我对中文主题没太大的兴趣,折腾英文主题比较多 :lol:,基本接触不到那些不要脸的。我只知道某人搞 xx 大学,但 RP 不太好,名声臭了。
          8年前 (2015-12-16)
          美国
          回复
          • aunsenFirefox · Windows 10

            @Liaosam 收到回复邮件了!最不要脸的是拿收费主题破解了然后再卖钱的!

            8年前 (2015-12-16)
            陕西
            回复
            • Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7
              @aunsen 这种还算好的。之前还在欲思的 WP 群里看到有人吐槽那些破解了 DUX 主题拿来卖钱,有不少人买源码但付钱后直接被拉黑。
              8年前 (2015-12-16)
              美国
              回复
              • aunsenFirefox · Windows 10

                @Liaosam 居然还有人这么干,真是林子大了。。。

                8年前 (2015-12-16)
                陕西
                回复
    • 不亦乐乎Chrome · Windows 10

      @aunsen Willin Kan 不玩 wp 确实可惜了,以前还有挂着个 typecho,现在连那个都没了。

      8年前 (2016-03-01)
      福建
      回复