Gravatar 头像缓存的问题一直困扰着启用了Gravatar 头像的博主们,都希望把Gravatar 头像缓存在本地服务器,才不会在调用Gravatar 头像的读者墙那样,一打开就像放电影一样一个个的加载,这可怎么能受得了。怎么才能简单实现Gravatar 头像缓存呢,参照网上方法自己DIY代码吧,又太繁琐了——爱折腾的会很乐意。
还是推荐一个插件吧:mini-gravatar-cache(点击下载)
然后上传到主题plugins
最后在后台启用就OK,就这么简单。
function get_avatar_wcache($imgc) {
$ava_time = 1209600;
$ava_dir_abs = ABSPATH.’wp-content/plugins/mini-gravatar-cache/iava/’;
$ava_dir_url = get_bloginfo(‘wpurl’).’/wp-content/plugins/mini-gravatar-cache/iava/’;
preg_match(‘/avatar\/([a-z0-9]+)\?s=(\d+)/’,$imgc,$imgc_md5);
$ava_mail_md5 = $imgc_md5[1];
$size = $imgc_md5[2];
$ava_img_abs = $ava_dir_abs.$ava_mail_md5.’.jpg’;
$ava_img_url = $ava_dir_url.$ava_mail_md5.’.jpg’;
$ava_default = $ava_dir_url.’default.jpg’;
if (!is_file($ava_img_abs)||(time()-filemtime($ava_img_abs))>$ava_time){
$ava_get_url = ‘http://www.gravatar.com/avatar/’.$ava_mail_md5.’?s=48&d=’.$ava_default.’&r=G’;
copy($ava_get_url,$ava_img_abs);
}
if (filesize($ava_img_abs)<500) {
copy($ava_default,$ava_img_abs);
}
return ‘<img src=”‘.$ava_img_url.’” width=”‘.$size.’” height=”‘.$size.’” />’;
}
add_filter(‘get_avatar’,’get_avatar_wcache’);