当前位置: 首页 > 博客 > 正文

Gravatar头像被墙了,来这里解决

Gravatar被墙了也有一段时间了,由于最近换工作、搬家等事情一直没有去解决他,今天有点时间就看了一下,目前已经有好多解决办法了,那么就看看都有哪些办法,可能有些办法适用,有的不适用

第一种:修改functions.php文件调用ssl链接

由于https还没有被墙,所以这种方式最简单了

在functions.php文件里添加如下代码

1
2
3
4
5
function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&amp;.*/','<img class="avatar avatar-$2" src="https://secure.gravatar.com/avatar/$1?s=$2" alt="" width="$2" height="$2" />',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

注:好像挺多用这种方法的,但是我用着不行,添加上了之后网站就打不开了,所以大家在用的时候如果可以的话就用,不行的话就删掉用其他方法

第二种:本地缓存

我用的weisay的主题,带有缓存的功能,如果你也是用的weisay的主题,这个应该可以不用改,直接开启就是

如果其他没有缓存功能的主题可以再functions.php文件中添加如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)) &gt; $t ) { //當頭像不存在或文件超過14天才更新
    copy(htmlspecialchars_decode($g), $e);
  } else  $avatar = strtr($avatar, array($g =&gt; $w.'/avatar/'.$f.'.jpg'));
  if (filesize($e) &lt; 500) copy($w.'/avatar/default.jpg', $e);
  return $avatar;
}
add_filter('get_avatar', 'my_avatar');

第三种:修改pluggable.php文件

这种方法显得有些笨,但是简单易操作,易理解,不好处就是如果更新WordPress的话还得重新修改这个文件

在pluggable.php文件中找到如下位置,修改成注释的那样,被注释掉的是原来的不想留可以直接删掉

1
2
3
4
5
6
7
8
9
10
	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($email) )
			//$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
			$host = 'https://secure.gravatar.com';//强制都使用https,解决被墙问题 修改时间2014-11-25
		else
			//$host = 'https://secure.gravatar.com';
			$host = 'https://secure.gravatar.com';//强制都使用https,解决被墙问题 修改时间2014-11-25
	}

第四种:添加插件

这种方法最简单了,只要安装插件启动即可,喜欢用插件的朋友可以试下

注:本插件是本人自己写的,而且是第一次写插件,本人测试时没问题的,如你在使用过程中有问题的话,你来打我呀

插件下载地址:gravatartohttps

其他还有很多方法,大家可自行搜下,什么多说缓存什么的

 

本文固定链接: http://www.misul.cn/gravatar_shield_solved.html | 米苏的博客

该日志由 米苏 于2014年11月25日发表在 博客 分类下, 通告目前不可用,你可以至底部留下评论。
原创文章转载请注明: Gravatar头像被墙了,来这里解决 | 米苏的博客
关键字: , , ,
  1. 家有泰迪犬一只,妈妈超级喜欢,早上它在厕所拉了个臭粑粑,妈妈有爱的说:“哎呀宝贝,拉粑粑了呀,来让姥姥给你处理了~呀,拉的粑粑还挺硬的呢!”然后就听见爸爸默默的接了一句:“怎么?咬不动吗?” 一个程序员社区 http://www.1024xyz.com

  2. 看到大家的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' );不要感谢我,请叫我雷锋!!