如何關閉Gravatar頭像功能或替換Gravatar頭像默認伺服器。
Gravatar頭像伺服器被牆會導致頭像無法顯示。
後台設置(有效)
打開 「設置」 → 「討論」,向下滾動,找到 「頭像」 設置區域
如何禁用 Gravatar 頭像服務?
使用插件:Disable User Gravatar
顯示本地頭像
參考:https://blog.csdn.net/qq_39879924/article/details/77369076
修改funcitons
利用多說Gravatar頭像中轉伺服器替代頭像默認伺服器。
將下面代碼添加到當前主題functions.php文件中:
function mytheme_get_avatar( $avatar ) {
$avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.duoshuo.com",$avatar );
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar' );
可惜多說服務穩定性欠佳,有時也會暫時無法顯示頭像。如編輯已發表的文章,並且文章已有評論,還需要在文章編輯頁面打開右上的「顯示選項」去掉「評論」勾選,否則在點擊更新文章按鈕後,還是會向Gravatar頭像伺服器發送獲取頭像請求,從而影響頁面載入速度。
使用https方式(SSL)調用Gravatar頭伺服器地址
使用方法同上,將下面代碼添加到主題functions.php文件中:
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');
貌似添加以上代碼後,一些頭像緩存插件也將失效。
使用Gravatar Fixed 頭像修正插件
插件設置頁面,將Gravatar 伺服器和Gravatar SSL 伺服器,全部改為:https://secure.gravatar.com
插件下載頁面
另一個比較笨的方法:
打開wordpress程序目錄的wp-includes文件夾,找到pluggable.php(WP4.2之前版本)打開,將大約2150至2157行:
if ( is_ssl() ) {
$host = 'https://secure.gravatar.com';
} else {
if ( !emptyempty($email) )
$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
else
$host = 'http://0.gravatar.com';
}
替換為:
$host = 'https://secure.gravatar.com';
或者(支持頭像緩存插件)
$host = 『http://cn.gravatar.com』;
WP4.2之後版本,打開wordpress程序目錄的wp-includes文件夾,打開link-template.php,將大約第3604行的:
$url = sprintf( 'http://%d.gravatar.com/avatar/%s', $gravatar_server, $email_hash );
修改為:
$url = sprintf( 'http://cn.gravatar.com/avatar/%s', $email_hash );
之所以說「笨」是因為下次更新程序,還需要再次修改,不過這個方法最實用。
以上方法主要針對使用用國內主機用戶,使用國外主機這時優勢突顯,並不需要修改任何東西,安裝頭像緩存插件,將頭像緩存到本地,並不影響正常使用。
fonts.googleapis.com和gravatar.com被牆,嚴重影響了Wordpress用戶體驗,對新手熟習Wordpress的造成極大障礙。