这两天发现博客评论的头像基本都属于红叉叉状态了。脑子里闪现的第一个反应就是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了。
完毕,跪安吧…