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