A-A+
修复被墙的Gravatar头像
从前几天开始,博客上的Gravatar的镜像站被我们伟大的墙给干掉了,好多博客上面的头像都变成了叉叉,开始还以为是我网络的问题,后来经过小黑的提醒,才知道这是伟大城墙的杰作,想不到我们伟大的长城连我们的头像都不放过,佩服,也怪Wordpress的官方,为啥要在3.0版本后的代码里直接调用Gravatar的镜像站,而不是想2.9以前都是调用主站的,要是那天连主站都墙了,那谁也怨不着了,只能怪自己生错地方了。
下面是小黑提供给我的恢复方法:
在wp-includes文件夹下 pluggable.php 文件,大约1645行。将下面的代码
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'; |
除了这个方法还有一米提供的缓存头像的方法,不过这种方法之适合服务器在国外的博客:
// 头像缓存 function my_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 .'.jpg'; $t = 1209600; //设定14天, 单位:秒 if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或文件超过14天才更新 copy(htmlspecialchars_decode($g), $e); } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg')); if ( filesize($e) < 500 ) copy($w.'/avatar/default.jpg', $e); return $avatar; } add_filter('get_avatar', 'my_avatar'); |
将以上代码添加到博客的function.php文件,同时在wp-content目录的同级目录下建立avatar文件夹,并且建立一个以default.jpg命名的默认图像,也就是如果评论者没有头像的话,用它替换,不然还是叉叉。
另外网上还有高手为此做了一个插件,叫Gravatar Fixed,其实原理和上面提到的第一种方法一样,就是替换头像图片地址,这里就不多做介绍了,不喜欢加代码的朋友可以直接安装插件搞定,该插件下载:原作者下载地址│千脑网盘下载
看到大家的Gravatar头像被墙,我这里也提供一个用七牛搭建的Gravatar头像缓存。七牛的速度我想大家也体验过了吧!WordPress博客请将下面代码添加到当前主题的functions.php文件中即可解决。
//=== Gravatar头像缓存 ===//
function gravatar_cache($avatar){
$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.hechaocheng.cn",$avatar );
$avatar = preg_replace( "/\?s\=/",".png?s=",$avatar );
return $avatar;}
add_filter( 'get_avatar', 'gravatar_cache' );
不要感谢我,请叫我雷锋!!
看看
k看看
多谢,方法管用,以前我都是关闭这个功能,现在又开放了。
我自己的博客也用到Gravatar的图像,还没遇到过问题。
博客这东西,我经常听说,却不知道怎么整,等空了,我还是要玩下,大哥,你的点击率真高
很久没更新了啊 给你点广告了啊
技术贴,路过。
好多人回复哦
好久都没有更新了吧
我还没有注意到这个问题呢….
发现许多人都发布这篇文章了。
是Gravatar的CDN服务出问题鸟 ╮(╯▽╰)╭ ~
我是一直开着头像缓存来着
现在好像恢复正常了
天 头像都黑 太变态了 还好现在觉悟了 又恢复了~~
你这里还是挺热闹。。。。
我没有处理就好了,看来墙也抽风啊。
已经搞定~~
直接用的修复插件呵呵!~
搞不懂。。。
第二个是willin大师的代码
为什么国内服务器不行?
国内都被墙了,怎么缓存啊,不过现在好像已经恢复了
早点缓存,就不怕被墙了哇
那如果墙了后还有新读者过来呢?
那也有个默认头像的哇。。。
从cnbeta过来了。 你够n的啊。。
什么意思,cnbeta有我链接?这两天没投稿了啊
cnbeta头版flash 3个图片。。你的在其中。太强大了
呵呵,cnbeta对我这篇文章比较关爱啊,这是第二次顶置了
还真是没太注意这个问题,不过好象已经正常了
我看看我的掉了没!呵呵!
现在已经好了
就是一个服务器给墙了,不过现在好像回来了
现在是好了
我也一直很担心这点,asp博客怎么解决呢
ASP的没研究过
现在已经恢复了。
恢复了?看来是临时性的