gravatar 头像缓存

<?php echo get_avatar($comment,$size='50',$default='<path_to_url>' ); ?>

替换为:

<?php
$f = md5(strtolower($comment->comment_author_email));
$a = get_bloginfo('wpurl') .'/avatar/'.$f.'.jpg';
$e = ABSPATH . 'avatar/'.$f.'.jpg';
$t = 1209600; //設定14天, 單位:秒
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
if ( !is_file($e) || (time() - filemtime($e)) > $t ){//當頭像不存在或文件超過14天才更新
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'.$f.'?s=50&d='.$d.'&r='.$r;
copy($g, $e);
}
if (filesize($e) < 500) {copy($d, $e);}
?>
<img src='<?php echo $a ?>' alt='' />

via:http://willin.atbhost.net/?p=1277

—————————————————————————————————

function my_avatar($email, $rating, $size, $default){
$p = 'avatar/';//这个是指在wp-content下建立一个权限为755并且名称为avatar的文件夹
$f = md5(strtolower($email));//根据email得到Gravatar头像的文件名
$a = $p . $f .'.jpg';//加上jpg后缀
$e = ABSPATH . 'wp-content/' . $a;//Gravatar头像在服务器上的路径
$t = 1209600; //设定为14天,单位:秒,可按需自己改
if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或文件超过14天才更新
$g = 'http://www.gravatar.com/avatar/'.$f.'.jpg?s='.$size.'&d='.$default.'&r='.$rating;//获取头像的地址
copy($g, $e);//保存头像到本地服务器
}
return get_bloginfo('home').'/wp-content/' . $a;//返回本地服务器上头像的地址
}

via:http://www.hopes4.me/html/also-frustrating-10-lines-of-code-gaoding-gravatar-cache/

—————————————————————————————————

新版 Gravatar 緩存

/* Mini Gavatar Cache by Willin Kan. */
function my_avatar( $email, $size = '42', $default = '', $alt = false ) {
$alt = (false === $alt) ? '' : esc_attr( $alt );
$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); $a = esc_attr($g); //新頭像 copy 時, 取 gravatar 顯示
}
if (filesize($e) < 500) copy($default, $e);
$avatar = "<img title='{$alt}' alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
}
// -- END ----------------------------------------

将所有的 get_avatar() 改 my_avatar()。functions.php comments.php sidebar.php comments-ajax.php

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');

via:http://kan.willin.org/?p=1320

$default = ‘identicon’; 缺省时随机头像

发表评论

电子邮件地址不会被公开。

 smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

无觅相关文章插件,快速提升流量