function ashu_avatar($avatar) {
//strpos函数计算$avatar中字符“http”的位置
$tmp = strpos($avatar, 'http');
//获取src=""之间的字符串,即图片的url
$len = strpos($avatar, "'", $tmp) - $tmp;
$g = substr($avatar, $tmp, $len);
//获取url中avatar/ 到第一个?之间的字符串,即图片文件名
$tmp = strpos($g, 'avatar/') + 7;
$len2 = strpos($g, "?", $tmp) - $tmp;
$f = substr($g, $tmp, $len2);
//参数wpurl获取wordpress的url地址(后台设置的)
$w = get_bloginfo('wpurl');
//ABSPATH为WordPress目录的绝对路径在wp-config.php中定义
$e = ABSPATH .'avatar/'. $f .'.jpg';
//7天=604800秒
$t = 604900;
//如果头像文件不存在,或者文件存在超过$t=7天
if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
//更新头像文件..将$e拷贝到为$g
copy(htmlspecialchars_decode($g), $e);
} else{
//如果头像文件存在且时间不超过7天,将原来图片的url替换为服务器上的图片url
$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
}
//如果头像文件小于500字节(下面这个我也不知道原作者是什么意思)
if( filesize($e) <500 ){
//将$e拷贝为default.jpg
copy($w.'/avatar/default.jpg', $e);
}
//返回$avatar
return $avatar;
}
//添加过滤器函数ashu_avatar
add_filter('get_avatar', 'ashu_avatar');