一、什么是Cravatar
Gravatar是WordPress母公司Automattic推出的一個公共頭像服務,也是WordPress默認的頭像服務。但因為長城防火墻的存在,Gravatar在中國時不時就會被墻一下,比如本次從2021年2月一直到8月都是不可訪問狀態。 在以往的時候,國內的CDN廠商和博客主會使用反代的方式確保Gravatar在國內能正常訪問,但老實說,這種方式很容易就會吃牢飯。不妨想一下,Gravatar為什么會墻?一定是出現了某些涉政、涉黃之類的違法內容。這些國家禁止的東西,我們將其反代入國內,可謂是細思極恐。同時反代也只能解決頭像訪問的問題,而解決不了頭像上傳的問題。
二、介紹Cravatar
好在,現在我們有了Cravatar。
Cravatar是WordPress本土化計劃中生態基礎設施的一部分,就和LitePress.cn構建的翻譯平臺及應用市場一樣。
Cravatar 100%兼容Gravatar的頭像API,這意味著你可以簡單的通過替換域名的方式來使用Cravatar接替Gravatar。同時,作為對中國互聯網環境的特別適配,Cravatar支持在用戶未設置Cravatar頭像及Gravatar頭像時匹配QQ頭像(僅限于使用QQ數字郵箱的用戶),這一切是自動進行的,用戶對此無感知。其帶來的效果是:經過三級匹配(Cravatar頭像->Gravatar頭像->QQ頭像)后,大約70%的訪客都會得到準確的頭像。
此外,Cravatar平臺還會對所有頭像進行人工審核,確保不會出現害群之馬。
總的來說,Cravatar在100%兼容Gravatar的同時還有以下優勢:
- 更快的速度 – 服務完全架設并運行在中國大陸境內,提供毫秒級的響應速度
- 更高的穩定性 – 所有頭像經人工審核確保不會出現違規內容,也就不會出現時不時訪問不了的情況
- 更高的頭像展現率 – 在自有頭像庫的基礎上囊括了Gravatar和QQ的頭像庫,可謂集天下之大成
三、如何使用
只需要將以下代碼加入您的插件或主題的 functions.php 里即可
if ( ! function_exists( 'get_cravatar_url' ) ) {/*** 替換 Gravatar 頭像為 Cravatar 頭像** Cravatar 是 Gravatar 在中國的完美替代方案,您可以在 https://cravatar.com 更新您的頭像*/function get_cravatar_url( $url ) {$sources = array('www.gravatar.com','0.gravatar.com','1.gravatar.com','2.gravatar.com','secure.gravatar.com','cn.gravatar.com','gravatar.com',);return str_replace( $sources, 'cravatar.cn', $url );}add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
四、替換默認頭像
添加上面的代碼以后,我們在 設置 – 討論 界面的頭像選擇這里,仍然顯示 Gravatar名稱,使用下面的代碼即可替換
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {/*** 替換 WordPress 討論設置中的默認頭像*/function set_defaults_for_cravatar( $avatar_defaults ) {$avatar_defaults['gravatar_default'] = 'Cravatar 標志';return $avatar_defaults;}add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
如果你使用其他系統,想集成Cravatar頭像,則可以參考開發文檔:https://cravatar.cn/developers
五、上傳自己的頭像
在Cravatar官網:https://cravatar.cn?注冊賬號(與litepress.cn賬號互通)即可添加和更換頭像,頭像修改后會在5分鐘內刷新緩存并生效。