WordPress 評論中的頭像是使用 Gravatar 的頭像服務 (Gravatar 官方註冊地址:http://en.gravatar.com),使用者的快取頭像一般都是固定不變的,所以我們可以將頭像快取到本地來提高我們網站的訪問速度。
我的 WordPress avatar 目錄的頭像快取:

WordPress 頭像快取功能設定方法
首先是在根目錄下建立一個資料夾 avatar,許可權 755 。再在裡面放一個預設的頭像 (default.jpg),沒頭像的童鞋就會用預設的。程式碼如下:

function my_avatar( $email, $size = '32', $default = '', $alt = '') {
  $f = md5( strtolower( $email ) );
  $a = WP_CONTENT_URL . '/avatar/'. $f . $size . '.png';
  $e = WP_CONTENT_DIR . '/avatar/' . $f . $size . '.png';
  $d = WP_CONTENT_DIR . '/avatar/' . $f . '-d.png';

  if($default=='')
    $default = 'http://www.wpnoob.cn/avatar/default.jpg';  //尺寸需要改為你自己網站評論的預設頭像

  $t = 2592000; // 快取有效期 30 天, 這裡單位: 秒
  if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
    if ( !is_file($d) || (time() - filemtime($d)) > $t ) {
      // 驗證是否有頭像
      $uri = 'http://www.gravatar.com/avatar/' . $f . '?d=404';
      $headers = @get_headers($uri);
      if (!preg_match("|200|", $headers[0])) {
        // 沒有頭像,則新建一個空白檔案作為標記
        $handle = fopen($d, 'w');
        fclose($handle);

        $a = $default;
      }
      else {
        // 有頭像且不存在則更新
        $r = get_option('avatar_rating');
        $g = 'http://www.gravatar.com/avatar/'. $f. '?s='. $size. '&r=' . $r;
        copy($g, $e);
      }
    }
    else {
      $a = $default;
    }
  }

  $avatar = "<img alt='{$alt}' src='{$a}'  height='{$size}' width='{$size}' />";
  return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
}

再將以上程式碼新增到你主題的 functions.php 檔案。
將獲取頭像地址的 get_avatar 函式替換為 my_avatar 。有個例外,functions.php 評論列表函式中:

get_avatar( $comment

需要改成:

my_avatar( $comment->comment_author_email

因為 my_avatar 函式只能透過 Email 來調取使用者頭像,所以以上情況,需要將第一個引數改成 email 地址。

get_avatar 函式介紹
用上面的方法簡單方便啊。 不過還有一步是要注意的。得要確認在呼叫頭像的地方都是用 get_avatar 函式來完成的。一般都是了,只有以前老的 theme 才不是。不是的話改過來就行。

如改為:

<?php
 echo get_avatar( $comment->comment_author_email, $size = '48', $default = get_bloginfo('wpurl') . '/avatar/default.jpg' );
?>