wordpress加速之Gravatar头像缓存本地化

我们用WordPress做网站的时候,在评论这块势必会用到Gravatar头像的,但是,这个Gravatar头像是国外的产品,打开/显示速度这块并不是很快。

那么今天的教程,就是教大家如何将Gravatar头像本地化,让头像存在我们自己的空间内,那这个速度就会提升很多!好了,直接进入教程吧!

在WordPress主题文件的functions.php内加入一下代码:

//本地加载GV头像
function xintheme_avatar_cache( $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( 'template_directory' );
$path = TEMPLATEPATH . '/avatar';
$e = $path . '/' . $f . '.png';
$t = 604800; //設定7天, 單位:秒
if( !is_file( $e ) || ( time() - filemtime( $e ) ) > $t ) copy( htmlspecialchars_decode( $g ), $e );
else $avatar = strtr( $avatar, array( $g => $w . '/avatar/' . $f . '.png' ) );
if( filesize( $e ) < 500 ) copy( TEMPLATEPATH . '/avatar/default.png', $e );
return $avatar;
}
add_filter('get_avatar', 'xintheme_avatar_cache' );

然后,在你所使用的WordPress主题根目录内新建名为“avatar”的文件夹,并设置文件夹权限为777。

最后放一个PNG格式的图片(名为default)作为默认头像。这样,刷新你们的网站,再看看,头像的地址是不是本地化了。