解决wordpress访问缓慢的办法-Gravatar头像

很多wordpress的主题都是有gravatar头像的,但是由于网络的原因,国内加载gravatar头像是相当缓慢的过程,所以就要用其他办法来解决这样一个加载缓慢的问题。

现在解决这个问题一般有2种方法,主要是本地缓存和CDN缓存。

先来谈谈本地缓存的方法,在网站的根目录建立一个avatar文件夹,里面放上一张图片default.jpg作为默认,然后打开functions.php文件,加入以下代码

//头像加速
function my_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 ) { //当头像不存在或文件超过14天才更新
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', 'my_avatar');

这一方法可以将图片缓存到本地空间上。

CDN缓存是一大类,主要有使用已经存在的和自己建立个缓存。

使用多说的gravatar头像服务器,感觉这个比较简单,在functions.php文件添加几行代码就ok的。

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 );

还有另外的自己建立CDN缓存的在这里就不说了,网上说的比较详细,而这也只是当作笔记,可以比较方便的更改。


已发布

分类

作者:

标签

评论

《“解决wordpress访问缓慢的办法-Gravatar头像”》 有 2 条评论

  1. abxylr经典游戏推荐 的头像

    我直接禁用头像了。。。

    1. shanyubawo 的头像
      shanyubawo

      有头像感觉好看点

回复 shanyubawo 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注