大家都知道wp的头像大部分是使用Gravatar全球通头像来关联用户头像的,但是由于Gravatar服务器在国外,受大陆防火墙的影响厉害,经常出现加载缓慢或者加载失败的情况,极大的影响了网站的速度,今天小舞给大家带来wordpress头像缓存的方法,将头像缓存到本地来,提高网站的加载速度!

    1. 首先在网站的根目录新建一个文件夹,名字为avatar,并给于777权限!
    2. 然后将wp默认的头像default.jpg放进去!这里有default.jpg的下载地址http://pan.baidu.com/s/1i3JuzNR
    3. 在当前使用的主题目录下找到functions.php,打开,添加下边的内容
  1. //缓存
  2. function my_avatar($avatar) {
  3.   $tmp = strpos($avatar, 'http');
  4.   $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
  5.   $tmp = strpos($g, 'avatar/') + 7;
  6.   $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
  7.   $w = get_bloginfo('wpurl');
  8.   $e = ABSPATH .'avatar/'. $f .'.jpg';
  9.   $t = 1209600//設定14天, 單位:秒
  10.   if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
  11.     copy(htmlspecialchars_decode($g), $e);
  12.   } else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
  13.   if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
  14.   return $avatar;
  15. }
  16. add_filter('get_avatar', 'my_avatar');

然后保存即可!

如何查看我们的头像是否缓存上去了呢,打开网站的根目录,找到刚才我们创建的avatar文件夹,看看里边有没有生成多余的图片,如果有就证明成功了,没有的话大多数是没有给权限!给个777就可以解决了!

发表回复

后才能评论