最佳评论员续–关于avatar头像的缓存处理  

今晚喵了一眼,发现今天访问量惨不忍睹.测试没有浏览器缓存的情况下,gravatar基本是属于打不开,首页的最佳评论员导致基本俺的博客挂鸟~~~

没办法,取舍间还是想想办法吧,就有了下面的代码了:

源代码传送门:  本博客添加最佳评论员功能,来灌水吧

添加新的代码,可怜俺罢了一堆资料,只好东拼西凑了

//用途:得到缓存后的avatar图片路径,14天更新一次
//参数:图片尺寸默认36

//返回:图片路径,不含标签
//作者:Clove ,纯属拼凑
//注意:必须确定是否有文件操作权限,例如copy()
function get_cache_avatar_pic($author_email,$size=36)
{
error_reporting(0);
$f = md5(strtolower($author_email));
$a = get_bloginfo('wpurl'). '/avatar/'. $f. '.jpg';
$e = ABSPATH. 'avatar/'. $f. '.jpg';
$t = 1209600; //读取周期14天,单位:秒
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
try{//读取失败,干脆不读了.反正肯定又是gravatar喵了.直接丢个异常处理完事.要不然只要卡了就悲剧~~~
if ( !is_file($e) || (time() – filemtime($e)) > $t ){ //头像不存在或文件超過14天才更新
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'. $f. '?s='.$size.'&d=monsterid&r=G';
copy($g, $e); $a = esc_attr($g); //新頭像 copy 時, 取 gravatar 顯示
}
if (filesize($e) < 50) copy($d, $e);
}catch(Exception $e)
{
return '';
}
return $a;
}

因为用的Live Writer,代码插件就没用,还要修改部分代码

$tmp = '<li><a target="_blank" href="'.$comment->comment_author_url.'"><span class="pic" style="background: url('.get_cache_avatar_pic($comment->comment_author_email,36).') no-repeat;">pic</span><span class="num">'.$comment->cnt.'</span><span class="name">'.$comment->comment_author.'</span></a><div class="active-bg"><div class="active-degree" style="width:'.$width.'px"></div></div></li>';

然后在你的博客根目录创建一个avatar的文件夹,权限755或者777,里面放个default.jpg 最好是36X36像素

打完收工喵,您现在看到的头像已经是缓存过的啦.

狠狠,想象一下,你的脑袋在俺的网站上存着了.哪天俺要是想吃油泼猴脑了咋办捏.

睡了去,喵~~~

欢迎大佬支持本博客的发展 -- Donate --

本文链接:最佳评论员续--关于avatar头像的缓存处理

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
    • DH
    • 2011年08月18日

    看看这个最佳,和你的主题还是蛮协调的

  1. 没有通告