WordPress博客Gravatar評論頭像不顯示的便捷解決方法

公元2014年11月17日沒人鳥我喲打醬油看熱鬧的有:1,588 views

WordPress博客Gravatar評論頭像不顯示的便捷解決方法

奈啊,正常使用博客突然發現評論者頭像都是紅叉了,不用查就知道蛋疼的Gravatar庫又被偉大的天朝圍墻給搞得月經了,本想著觀察幾天,應該經期很快就過了,但是每每打開博客的時候看到這麼惡心的紅叉真心讓人不淡定,算吧啦,自己動手搞定吧!下面說下具體解決方法,希望遇到同樣問題的哥們能夠早日下手解決!

首先說下傳統的解決方法吧!相信很多人都用緩存法解決這個問題的,就是在自己主機服務器上建立一個文件夾,然後改權限,然後添加默認頭像,然後在主題模板的functions.php中添加緩存規則!

這種方法好處不說了,咱們來分析下弊端,在使用Gravatar緩存到本地時當用戶在Gravatar中更新了自己的頭像時或者用郵箱註冊了Gravatar頭像時,留言後顯示的原頭像會遲遲得不到更新,因為得等7天(當然如果你設置的緩存週期是14天那就得等14天)內主機才會重新獲取新的Gravatar頭像!這個還是讓人比較鬱悶的!

既然這樣,下面就說下本篇文章的解決方法,之所以說是便捷,其實是偷步而已,就是利用國內的多說頭像緩存,在說方法之前也分析下這種方法的利弊,優點就是速度快,畢竟多說是在國內,並且是數一數二的第三方評論大佬,頭像調用和庫方面肯定要比自己的主機強!弊端也有,那就是因為如果用的人多的話,不排除多說會禁止此種方法,畢竟不帶來利益的交易誰也不願意做.當然即使以後禁止了也沒有什麼可怕的,大不了我們再換回來!

好了,啰嗦了這麼久,下面就說下方法,直接在你主題的functions.php中添加一下這段代碼即可,然後刷新自己的頁面,看頁面元素,頭像都已經到多說那了,不說別的,速度真心快!

1
2
3
4
5
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 );

還有一種方法是替換服務器地址,和多說的性質差不多,下面是代碼

1
2
3
4
5
 function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

至於親愛的要用哪種方法,自己可以去考慮下!方法是提供了,選擇權還是在自己,集思廣益,多多益善嘛!