• 开启全站HTTPS。2017-04-29
  • 本站为非盈利性站点,所得收入全部用于网站服务器及其他费用。2015-10-15
  •    3年前 (2015-11-17)  WordPress教程 |   抢沙发  40 
    文章评分 0 次,平均分 0.0

    由于GFW的关系,使用gravatar的博客评论头像在国内会经常被墙,下面本文就分享几种方法来解决头像被墙问题。

    调用ssl 头像链接

    https还是没被墙的,而且速度还不错,直接调用这个最简单了。

    如果你的网站启用了ssl则不需要了,否则functions.php加入如下代码

    本地缓存代码方案

    代码缓存方案,内容摘自?WP大学,以下是具体做法:

    ①、建立缓存目录

    在wp-content 的同級目录建立一个文件夹,命名为 avatar ,设置该文件夹的权限为 0755 (如果 0755 不行,就试一下 0777)。

    ②、设置默认头像

    准备一张大小适合的默认头像,命名为"default.jpg" ,放在 avatar 文件夹里面。

    ③、添加缓存代码

    将下面的代码复制到模板的 functions.php 文件中即可:

    二、插件方案

    前不久,知更鸟博主鸟哥在begin群里分享了一款将gavatar头像缓存到本地的插件,个人试用了下,发现还不错,这款插件的名字就叫:nix-gravatar-cache。貌似原版插件有点问题,鸟哥还DIY了一把。

    如果,发现装了原版的有问题,那么就下载鸟哥改过的版本吧!

    三、Nginx方案

    我在测试这个插件的过程中,看了下生效后的头像路径,突然灵感一现:这缓存完全可以通过Nginx的proxy反向代理来缓存到本地啊!就类似于方向代理谷歌,解决被墙问题。

    说干就干,经过折腾测试,发现果然好用!下面分享一下具体做法。

    ①、编译Nginx

    Nginx 反向代理缓存需要集成?ngx_cache_purge 模块,如果没有,则需要重新编译Nginx,新增该缓存模块,并在http上下文模块中添加proxy缓存规则,比如:

     

    ②、Nginx配置

    在网站现有规则中加入如下规则,反向代理gavatar并缓存到本地:

     

    ③、PHP代码

    在主题目录下的functions.php中插入如下代码:

    即可将WordPress头像地址更改成自己的域名,因为头像地址二级目录字段是/avatar/,所以会匹配到我们在上一步Nginx新增的反向代理规则,从而从 cn.gravatar.com 拉取头像并缓存到服务器本地。

    很明显这个方法支持各种建站程序(需要修改网站代码),比PHP代码或插件的逼格、效率都更高!而且还不会出现外部 url 地址了!

    四、折腾拓展

    建议静态资源使用二级域名,并拒绝cookies的写入。所以本文还能继续拓展折腾一下:将头像地址改成二级域名。其实就是新增一个 server 模块而已,非常简单,感兴趣的朋友可以自己折腾一下,本文就不多做说明了。

     

    本文资源整理自网络,部分来源为:张戈博客及wp大学。

     

    除特别注明外,本站所有文章均为小浩博客原创,转载请注明出处来自https://www.xhsay.com/wordpress-gravatar.html

    关于
    小浩博客(www.xhsay.com)是由Tovey建立的个人站点,主要致力于整合并分享各种互联网及网站建设的资源。

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册