當博客全面支援 HTTPS 協議訪問後,之前做的 WP-ReplaceGravatarMirror 插件對 HTTPS 的訪問效果不是太好,因此對 WP-ReplaceGravatarMirror 插件進行了簡單的一次小升級,讓 WP-ReplaceGravatarMirror 同時支援 HTTP 和 HTTPS 網站,本次改進只針對 https 網站進行優化,如果啟用了 HTTP 訪問的話歡迎下載和升級,沒有啟用 HTTP 訪問且已經安裝 WP-ReplaceGravatarMirror1.0 版本的可以不需要升級。
插件名稱:WP-ReplaceGravatarMirror 插件說明:插件說明頁面 目前版本:1.1 使用方法: 1. 下載最新版本的 WP-ReplaceGravatarMirror,解壓已下載完成的文件。下載地址:https://github.com/limccn/WP-ReplaceGravatarMirror/tree/master/release/1.1 2. 將解壓後的 wp-replace-gravatar-mirror 文件夾上傳到伺服器的 plugins 目錄下,或者使用 Wordpress 自帶的上傳安裝插件功能 3. 進入 Wordpress 後台,在插件選項卡中啟用 WP-ReplaceGravatarMirror
附上完整的 WP-ReplaceGravatarMirror1.1 源代碼
/**
* 沉默是金
*/
if (!defined('ABSPATH')) exit;
class WP_Replace_Gravatar_Mirror
{
/\*\*
\* 初始化Hook
\*
\*/
public function \_\_construct()
{
if(isset($\_SERVER\['HTTPS'\]) && $\_SERVER\['HTTPS'\] == 'on')
{
add\_filter('get\_avatar', array($this,'replace\_gravatar\_to\_ssl'), 10, 3);
}else
{
add\_filter('get\_avatar', array($this,'replace\_gravatar\_to\_duoshuo'), 10, 3);
}
}
/\*\*
\* 使用多说的gravatar镜像替換Gravatar。
\* 簡單地將"\*.gravatar.com"替換為"gravatar.duoshuo.com"。
\*
\* @param $avatar
\* @return mixed
\*/
public function replace\_gravatar\_to\_duoshuo($avatar)
{
$avatar = str\_replace(array('www.gravatar.com','0.gravatar.com','1.gravatar.com','2.gravatar.com','s.gravatar.com'),'gravatar.duoshuo.com',$avatar);
return $avatar;
}
/\*\*
\* 使用https gravatar服務器替換非https。
\* 簡單地將"http://\*.gravatar.com"替換為"https://secure.gravatar.com"。
\*
\* @param $avatar
\* @return mixed
\*/
public function replace\_gravatar\_to\_ssl($avatar)
{
$avatar = preg\_replace('/.\*\\/avatar\\/(.\*)\\?s=(\[\\d\]+)&.\*/','![](https://secure.gravatar.com/avatar/$1?s=$2)',$avatar);
return $avatar;
}
}
/**
* 啟動
*/
new WP_Replace_Gravatar_Mirror;