• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

WordPress优化使用国内镜像加速Gravatar及缓存

解决方法 WaterBear 来源:WordPress优化使用国内镜像加速Gravatar及缓存 3年前 (2021-04-23) 774次浏览 已收录 扫描二维码

为什么要使用国内镜像?

WordPress就使用了Gravatar头像,但是Gravatar服务器在国外但是我们的用户多来自国内,这就导致网站访问速度很慢

解决办法

使用国内镜像加速,调用代码将下方代码加入到主题的functions.php文件里

/*gravatar使用镜像加速*/
function replace_gravatar($avatar) {
$avatar = str_replace(array("//gravatar.com/", "//secure.gravatar.com/", "//www.gravatar.com/", "//0.gravatar.com/", 
"//1.gravatar.com/", "//2.gravatar.com/", "//cn.gravatar.com/"), "//cdn.v2ex.com/gr", $avatar);
return $avatar;}
add_filter( 'get_avatar', 'replace_gravatar' );

其中cdn.v2ex.com/gr可替换为下方镜像网站

cdn.v2ex.com/gr
dn-qiniu-avatar.qbox.me
gravatar.proxy.ustclug.org
sdn.geekzu.org
gravatar.loli.net

Gravatar头像缓存到本地

1.首先在网站根目录创建一个avatar文件夹(权限改为777或755)。

2.新建一张默认的头像图片,名为default.jpg并放入avatar文件夹中。

3.将以下代码添加到当前使用的主题的functions.php文件中即可。


//将Gravatar头像缓存到本地
function ymjihe_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; 
//设定还缓存时间14天,单位为秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { 
//头像超过设定时间或不存在则更新
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'ymjihe_avatar');


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WordPress优化使用国内镜像加速Gravatar及缓存
喜欢 (6)
[[email protected]]
分享 (0)