多說Gravatar頭像在Wordpress中無法顯示的解決方法

知道91 | WordPress | 2014-11-23 | 閱讀:7249

昨天有博主說我的網站訪問慢,我很奇怪,我的網站是使用了緩存的,一般都是秒開的,怎么會反應慢呢?結果一看果然是,最后究其原因是由于Gravatar頭像0.gravatar.com host被屏蔽了,所以導致gravatar的頭像無法加載,最終導致我們的Wordpress網站加載緩慢。據我所知,同樣受到困擾的還包括WordPress存儲靜態文件的s.wordpress.org緩存服務器,以及jQuery的code.jquery.com等。那么有沒有解決方法呢?如果你使用Wordpress自帶的評論方法,那么解決方法是有的。

方法一:使用多說調用gravatar頭像

官方Gravatar的頭像所在的路徑一般都是www.gravatar.com、0.gravatar.com、1.gravatar.com、2.gravatar.com,這次被屏蔽的就是0.gravatar.com,所以我們只需要把這些頭像默認的URL換成多說的host就可以了,因為多說在gravatar之間建立了一個中繼器,也就是一份鏡像,但是多說是可以訪問的,所以這種方法是可行的。

打開主題下的functions.php 文件,將以下代碼復制粘貼保存即可:

//多說官方Gravatar頭像調用
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 );

這樣,Gravatar頭像的外鏈地址已經全部到了多說的國內服務器了。

使用Gravatar Fixed頭像修正插件

這款插件的原理也是將Gravatar 的host替換國內能夠訪問的host,Gravatar Fixed插件可以通過函數覆蓋的方式,重新自定義Gravatar服務器,直接讀取www.gravatar.com 的內容,保證正常訪問。當然,假如Gravatar將來提供了國內的鏡像(或者有熱心網友自行搭建),也可以將地址修改為國內服務器,比如多說的服務器地址,以提高速度。

Gravatar Fixed插件修改Gravatar無法訪問的問題

官方Gravatar頭像調用ssl頭像鏈接

如果你的網站是使用了SSL證書的,應該就不存在這樣的問題,但是大多數網站是沒有使用SSL證書的,因此可以加入如下的代碼到function.php解決Gravatar頭像在Wordpress中無法顯示的問題。

//官方Gravatar頭像調用ssl頭像鏈接
function get_ssl_avatar($avatar) {
 $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','',$avatar);
 return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

以上都是說的使用Wordpress自帶的評論無法顯示頭像的問題,但是很多朋友使用的是多說的評論,或者使用的是多說的讀者墻,這樣也會顯示頭像無法加載的錯誤,那么這種方法造成的原因是我們加載的是多說的第三方代碼,但是返回給我們的代碼還是被和諧了的host,因此我們博客的Gravatar頭像顯示不正常,多說官方給的說法是:

本地沒有的頭像,多說需要先訪問gravatar,由于gravatar訪問慢導致多說服務器有大量阻塞,所以我們暫時關閉了緩存直接訪問gravatar,我們正在設計國內通用頭像系統哦,敬請期待。

所以如果使用多說評論造成Gravatar頭像無法顯示的,我們就只有期待多說的服務器返回給我們正確的或者說沒有被屏蔽的Gravatar官方Host了。

福彩3d开机号 勇者斗恶龙11赚钱攻略 传奇打金手游能赚钱 扑克当麻将玩法 在大学开食堂怎么赚钱吗 如何填调查问卷赚钱 广西十一选五 2018经济下什么会更好赚钱 玩手游赚钱论坛 球探即时篮球nba比分直播 批发什么配件最赚钱 大众麻将胡牌牌型图解 广西快乐十分 微信捕鱼 平台交押金可以赚钱吗 腾讯湖南麻将作弊器 浙江20选5