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