一开始的时候怎么都不行,不知道为什么,估计是这个主题的本身的问题,而且我一直找不到get_avatar()这个函数是定义在哪里的,然后就看willin的头像缓存,但是试来试去不成功,我都去我这主题的论坛发贴问了,不过那里的boss又说最好不要改文件,因为说实话Atahualpa这个主题实在是太强大了。基本上什么都为你考虑到了,只是设置的地方太多才会让人觉得不好,或者说你没找到怎样设置的。我昨天还问别人他们的页面foot的插件栏是怎样实现的,后来他们说是主题自带的,我就郁闷了,难道我得换主题不成。。。铛铛铛,这里开心的事发时了,我在看主题的设置的时候忽然发现一个Add new Widget Areas选项。。。这个不就是添加可以添加插件的区域嘛。。。然后就去设置了,果然很强大。。。说远了,还是讲头像缓存。

/* Mini Gavatar Cache by Willin Kan. */
function my_avatar( $comment, $size = '42', $default = '', $alt = false ) {
  $alt = (false === $alt) ? '' : esc_attr( $alt );
  $f = md5( strtolower( $comment->comment_author_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, $comment, $size, $default, $alt);
}
// -- END ----------------------------------------

这个就是willin的头像缓存代码了,但是这里稍微改了下,因为不知道怎么问题,我看他后面的留言的里也有这样的问题,$f = md5( strtolower( $email ) ); 提示这个出错,不过后面leo-n提出的就是把emai换成comment->comment_author_email这样确实ok了还有function my_avatar( $email...和return apply_filters('my_avatar', $avatar, $email...这两个地方里面的$email也都要换为$comment ,不然全部都输出默认头像了。。。到此就ok了,函数设置好了,
接下来就是在要用的地方引用函数,把所有get_avatar() 改 my_avatar(), 大概是 functions.php, comments.php, sidebar.php, comments-ajax.php 会有头像的地方有这get_avatar() 函数。我也是一个一个找的。。。反正有comments就看看吧。
最后要注意的是 my_avatar() 的方法和 get_avatar() 有一点区别。
get_avatar() 可用 id 或 email, 可写成 get_avatar($comment, $size= ...
而 my_avatar() 只能用 email, 要改成 my_avatar($comment->comment_author_email, $size= .
使用参数。

   <?php echo my_avatar(  $email, $size, $default, $alt );  ?>