Only U is in my heart!
I will be right here waiting for you.

对抗GFW:WordPress中Gravatar被墙的非插件解决办法

这两天发现博客评论的头像基本都属于红叉叉状态了。脑子里闪现的第一个反应就是Gravatar被墙了又。Ping一下0. gravatar.com不通,不过www的还是通的,看来河蟹的还不是很狠。生活在一个充满河蟹的世界里既喜且悲啊。喜的是遍地河蟹,饿死是不可能的,悲的是像Gravatar这样的无害网站也要被墙掉。

饭还得吃,路还得走,总不能因为怕噎着不吃饭,怕扯着蛋不迈开步子走路吧。网上一看,反映这个问题还真不少,看来GFW干这种傻逼事还真不是一次两次了。网上的解决方法也是一大堆,不过很多都是插件缓存到服务器神马的。首先插件我是不用的,算是一种癖好吧。其次,这种方法对国外的服务器还好,国内的服务器的话一样没啥效果。

闲话懒得扯了,直接上方法吧。将两种比较有效的方法总结到下面 而且不需要插件就能够实现。大家依葫芦画瓢吧。

方法一:直接修改wp-includes下的pluggable.php。

挖出/wp-includes/pluggable.php这个文件,找到下面这段代码:

if ( is_ssl() ) {
$host = 'https://secure.gravatar.com';
} else {
if ( !empty($email) )
$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );
else
$host = 'http://0.gravatar.com';
}

修改为:

if ( is_ssl() )
$host = 'https://secure.gravatar.com';
else $host = 'http://www.gravatar.com'

该方法网络流传已久,不需要对主题进行修改,经常换主题的童鞋可以考虑一下。

方法二:重定义$host。

到主题文件夹找到functions.php,在<?php和?>之间添加下面的代码:

function my_gravatar_url($host){
//regex replace

return preg_replace('/\d+(?=\.gravatar)/i','www',$host); } add_filter('get_avatar', 'my_gravatar_url');

保存,退出,ok!

该方法没有对Wordpress的文件进行修改,修改的主题文件,适合不经常更换主题的童鞋。

两种方法各有利弊,时候不通需求的人,各位看管各取所需吧。需要注意的是,这两种方法的前提是通过get_avatar()函数获取Gravatar头像的童鞋。一般较新的主题都是这种方法,如果不是,那就请自己找到相应的位置直接将0.gravatar.com之流改为www.gravatar.com就KO了。

完毕,跪安吧…

赞(0) 打赏
未经允许不得转载:Onlyisu » 对抗GFW:WordPress中Gravatar被墙的非插件解决办法

相关推荐

  • 暂无文章

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏