提升WordPress的Gravatar頭像加載速度方法: 緩存本地化國內服務器

Gravatar 頭像已經成為了博客、論壇等一種非常流行的通用頭像,不管是 WordPress 還是 Z-Blog 、 Typecho 、 Emlog 等,留言或者登錄註冊等都支持 Gravatar 頭像,擁有一個 Gravatar 頭像已經成為草根博主一種必選項目。

每位留言者根據自己的郵箱會顯示不同的 Gravatar 頭像,如果一篇文章的留言者非常多,比如幾百個以上,就會顯示幾百個 Gravatar 頭像圖片,圖片越多,HTTP 請求也就越多,容易導致網頁加載緩慢、網站出現打不開的現象。

另外一個不容忽視的問題是 Gravatar 頭像的服務器全部位於國外,由於受到各種因素的影響,有時國內是無法連接到 Gravatar 頭像服務器上,也就是無法顯示 Gravatar 頭像,大量的無法顯示的圖片會導致網頁直接打不開。

基於以上兩個原因,部落已經看到了不少的有名氣的博客已經取消了顯示 Gravatar 頭像,目的就是為了最大限度地加快網頁的加載速度,畢竟在瀏覽網頁內容和留言兩者之間,獲取網頁內容才是第一位的,評論只是一種交互方式。

在當前 Gravatar 頭像服務器位於國外的情況下,要想要加快 WordPress 顯示 Gravatar 頭像的速度,首先可以做的就是將 Gravatar 頭像圖片緩存到自己的虛擬主機或者 VPS 上,這樣用户訪問的就是直接讀取自己服務器的圖片文件了。

這樣做的好處是可以避免 Gravatar 頭像服務器被 Q 的情況下導致網頁無法打開,但是部落用這個方法後發現,過了一段時間後,大量的 Gravatar 頭像圖片會佔用非常多的空間,且不容易刪除。另外過多的圖片反而會增加服務器壓力。

所以提升 WordPress 的 Gravatar 頭像加載速度進階的方法就是將 Gravatar 頭像的服務器變身為國內的,最好是外鍊形式,例如放在國內一些大公司的服務器上或者專業的 CDN 服務器上,本篇文章就來介紹此種方法。

WordPress 是一個定製性非常強的博客程序,各種 WordPress 加速方法也是層出不窮,加速效果不錯的方式有:

提升 WordPress 的 Gravatar 頭像加載速度方法: 緩存本地化國內服務器

一、 WordPress 的 Gravatar 頭像圖片緩存到本地

1 、此方法來自 Willin Kan 博主,這位在 WordPress 很有名氣的博主因為討厭 WordPress 程序越來越低效率而毅然決定關站放棄 WP 的行為,實在讓部落覺得敬佩。

2 、要想將 WordPress 的 Gravatar 頭像圖片緩存到本地,先在網站的根據目錄新建一個 avatar 的文件夾,讀寫權限設置為 755 。

Gravatar新建一個文件夾

3 、有些留言者的郵箱可能沒有註冊 Gravatar 頭像,我們需要用到一個默認的圖片替代這樣的留言者的頭像,將一張 default.jpg 的圖片作為默認頭像放在 avatar 文件夾中。

Gravatar上傳一個默認的頭像

4 、打開你的主題的 functions.php 文件,編輯內容。

Gravatar編輯文件

5 、將以下代碼複製粘貼到你的 functions.php 最後,默認的是 14 天更新一次頭像圖片,你可以自己修改為更短時間。


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

6 、 WordPress 的 Gravatar 頭像圖片緩存到本地後,圖片的路徑不再是 Gravatar 官網的 URL 了,而是本地服務器的圖片地址了。

Gravatar緩存到本地

二、將 WordPress 的 Gravatar 頭像緩存到百度 BAE 空間

1 、利用上述方法,WordPress 的 Gravatar 頭像會自動生成圖片保存到本地的 avatar 的文件夾。

Gravatar自動生成圖片

2 、看過百度 BAE 全平台 Layer 鏡像 CDN 加速安裝使用一定可以立即想到將 Gravatar 頭像緩存到百度 BAE 空間上。

3 、利用百度 BAE 空間的速度可以大量加快圖片的加載速度,同時也可以避免過多的圖片請求拖慢服務器。

4 、因為所有的 Gravatar 頭像圖片都保存在 avatar 的文件夾中,安裝了 Wp Super Cache 插件的朋友可以直接到後台的 CDN 選項中將 avatar 文件目錄包含中緩存加速中。

Gravatar在插件中設置

5 、還有安裝或者使用 Wp Super Cache 插件的朋友,請參考:WordPress 加速緩存插件 WP Super cache 安裝方法及使用技巧

6 、使用百度 BAE 空間加速後,Gravatar 頭像圖片顯示出來的 URL 就是百度空間上了。

Gravatar放到百度空間上

三、將 WordPress 的 Gravatar 頭像緩存到七牛雲存儲 CDN

1 、七牛雲存儲 CDN 和上面的百度 BAE 全平台 Layer 鏡像工作原理是一樣的,沒用過七牛的參考:七牛雲存儲國內免費 CDN 加速 10GB 空間

2 、先到七牛中添加你的源網站。

Gravatar添加新的源網站

3 、然後在 Wp Super Cache 中將緩存 URL 設置為七牛的就可以了。

Gravatar設置的七牛

四、利用多説 Gravatar 頭像國內鏡像服務器實現緩存加速

1 、上面兩種方法操作有點繁瑣,圖片太多的話緩存到 BAE 空間或者七牛 CDN 也要消耗不少的流量,這裏再分享一個在 yuxiaoxi.com 博主上的方法:將 WordPress 頭像緩存到多説 Gravatar 頭像國內鏡像服務器。

2 、方法的原理是:官方的 Gravatar 頭像所在的路徑一般都是 www.gravatar.com 、 0.gravatar.com 、 1.gravatar.com 、 2.gravatar.com 這四個,我們只需要將頭像默認的 URL 換成多説的就行了。

3 、打開主題下的 functions.php 文件,將以下代碼複製粘貼保存即可。


function mytheme_get_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );

4 、效果見下圖,Gravatar 頭像的外鏈地址已經全部到了多説的國內服務器了。

Gravatar使用多説服務器

5 、同理利用此方法,我們還可以在七牛中自己建立一個 Gravatar 官網頭像服務器,然後將以下代碼複製到 functions.php 文件中,就可以讓 Gravatar 頭像的外鏈地址變成七牛的 CDN 了。


function mytheme_get_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"freehao123.qiniudn.com",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );

五、 Gravatar 頭像緩存加速方法總結

1 、部落在使用 Gravatar 緩存到本地時發現當用户在 Gravatar 中更新了自己的頭像時或者用郵箱註冊了 Gravatar 頭像時,留言後顯示的原頭像會遲遲得不到更新,因為得等 14 天內主機才會重新獲取新的 Gravatar 頭像。

2 、第二種利用多説 Gravatar 頭像國內鏡像服務器實現緩存加速貌似有點風險,因為如果用的人多的話,不排除多説會禁止此種方法,畢竟不帶來利益的交易誰也不願意做。當然即使以後禁止了也沒有什麼可怕的,大不了我們再換回來。

文章出自:免費資源部落 http://www.freehao123.com/ 版權所有。本站文章除註明出處外,皆為作者原創文章,可自由引用,但請註明來源。

您或許對下面這些文章有興趣:                    本月吐槽辛苦排行榜