Gravatar头像被墙完美解决方案

最近朽木所在的电信商把0.gravatar.com给墙J了,虽说启用了多说的插件,但是后台的工具条老是一个大的叉叉,网上提供的无非是缓存/插件/修改程序代码,但是弊端很大,缓存的方式肯定要占用不必要的服务器资源,修改程序代码的话,随着Wordpress更新,每次都需要修改,朽木之前就是手动修改成了www.gravatar.com,参见Gravatar头像分流服务被墙的纠结,但是被更新包覆盖掉了。

朽木发现多说调用的头像可以正常显示,原来多说专门架设了一台Gravatar的中转服务器,为了节省带宽那么他必然要启用一定的缓存机制,那么Wordpresser们的福音来了,只需短短几行代码就可以彻底告别Gravatar别墙的困扰。

完美解决方案

gravatar-wordpress

编辑当前主题的functions.php文件,在底部加入

//头像使用duoshuo缓存
function get_avatar_deadwood( avatar ) {avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://cdn.v2ex.com/gravatar",avatar );
  returnavatar;
}
add_filter( 'get_avatar', 'get_avatar_deadwood' );

从来没有在多说上出现过的头像会有一小会的延迟,不过缓存之后凭借着不到20MS的服务器速度,根本感觉不到页面加载了大量头像了。

近来gravatar被封杀的越来越厉害,大家全部都把流量“送给”多说也有点不人道,其实我们还可以用其他的第三方缓存例如https://ruby-china.org 和 https://cdn.v2ex.com/gravatar/(前缀不一致,需修改代码),另外官方的http://cn.gravatar.com 和 https://secure.gravatar.com 也都是可用的,速度尚可。

多说已经失效,目前改为v2ex的CDN,测试正常

朽木

5条留言
  1. 右侧的最近留言栏发生错位!

  2. 不错的