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

给Tstyle插上翅膀之Gravatar头像缓存

记得前两天的时候,百度统计里面的那个测速,得分狠低狠低。大多是头像加载浪费了很大一块时间。本来对此无甚想法,心想国外主机还能快哪去啊。下午在群里闲聊的时候,皇家园林同学说了一句网站的加载速度对搜索引擎是有影响的。最近感觉百度对自己的小博客不是很亲睐,所以灰常敏感。便想到了缓存头像到本地。大体看了一下挺简单的。找点代码过来修改修改大约就能用了。

我用的是Tstyle主题,在这里稍微的抱怨一下。本人菜鸟无法给主题的孬好下个定论,只是感觉这个主题的代码写的稍乱。组织起来不是特别成熟的说。侧边栏的头像是自己构建的输出,而评论却是调用的get_avatar()这个函数输出的。所以修改起来比较麻烦,得分别修改,不能用一个函数搞定的。

打开functions.php,将下面的代码copy到里面去:

//侧边栏Gravatar头像缓存
function gravatar_cache($email){
	$f = md5( strtolower( $email ) );
	$w = get_bloginfo('wpurl');
	$a = $w.'/avatar/'.$f.'.jpg';
	$e = ABSPATH.'avatar/'.$f.'.jpg';
	$t = 1209600; //超时时间设定,默认14天,单位:秒
	if ( empty($default) ) $default = $w.'/avatar/default.jpg';
	if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者缓存时间已经超过14天
		$r = get_option('avatar_rating');
		$g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'.$f.'?s='.$size.'&d='.$default.'&r='.$r;
		copy($g, $e);
	}
	if (filesize($e) < 500) copy($default, $e);
	return $a;
}

//评论Gravatar头像缓存
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');

在找到下面这句代码:

$grav_url="http://www.gravatar.com/avatar/".md5( strtolower( $email ) )."&d=http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=32";

将其替换为:

$grav_url=gravatar_cache($email);

OK,这样就缓存完成了。需要注意的是该方法不能后台实时缓存。会在用户评论时自动缓存到本地,有效期14天,过期会重新缓存。刚加上代码,可能第一次访问的速度会稍慢。测试了一下,效果不是特别明显。不过也有所改善,准备考虑搬回国内。

赞(0) 打赏
未经允许不得转载:Onlyisu » 给Tstyle插上翅膀之Gravatar头像缓存

相关推荐

  • 暂无文章

评论 8

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

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

联系我们联系我们

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

支付宝扫一扫打赏

微信扫一扫打赏