什么是 Gravatar 头像?

Gravatar 头像相当于你的 QQ 头像,代表的就是你在网络的个人形象,所以各种社交程序都不能免除头像的使用,WordPress 也不例外。

众所周知,WordPress 的 Gravatar 头像默认会是 「http://1.gravatar.com/avatar/50ad321e53732e7b5a6593c23fa9b0」 这样的格式, 而国外服务器在天朝显示速度极慢,有时候导致一个页面就因为一个小小的头像,很久才打开完全。更有时候甚至不能打开,一个大红叉叉,很是影响用户体验,以及网站打开速度。

今天的教程就是,将 WordPress 的 Gravatar 头像缓存到本地服务器,加速 WordPress 运行,如果你也是国内的服务器,这样打开速度就会快很多。

WordPress教程:Gravatar头像缓存到本地

WordPress 教程:Gravatar 头像缓存到本地

缓存使用前提

确定自己的模板或者主题用的是 WordPress 2.7 以后才有的 wp_list_comments(),如果不清楚,你可以在你的 comments.php 或者 functions.php 中搜索试一试,还是不知道就直接跳过。

缓存 Gravatar 头像

建立缓存目录

在 wp-content 的同级目录建立文件夹:avatar,文件夹权限为:755,如果不行文件夹权限就设置成 777, 这是 gravatar 头像 缓存的路径。

设置默认头像

制作一张默认头像,也可以直接在 wordpress 后台》 设置》 讨论 里 copy 一张, 命名为"default.jpg" ,放在 avatar 文件夹里面。

添加缓存代码

将下面的代码复制到模板的 functions.php 文件中即可:

  1. function my_avatar($avatar) {
  2.   $tmp = strpos($avatar, 'http');
  3.   $g = substr($avatar$tmpstrpos($avatar"'"$tmp) - $tmp);
  4.   $tmp = strpos($g, 'avatar/') + 7;
  5.   $f = substr($g$tmpstrpos($g"?"$tmp) - $tmp);
  6.   $w = get_bloginfo('wpurl');
  7.   $e = ABSPATH .'avatar/'. $f .'.jpg';
  8.   $t = 1209600; //設定 14 天, 單位: 秒
  9.   if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過 14 天才更新
  10.     copy(htmlspecialchars_decode($g), $e);
  11.   } else  $avatar = strtr($avatararray($g => $w.'/avatar/'.$f.'.jpg'));
  12.   if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
  13.   return $avatar;
  14. }
  15. add_filter('get_avatar', 'my_avatar');

OK,收工。刷新几个网页,看看 avatar 文件夹中是否有缓存内容,如果没有的话,说明缓存失败,该方法不适合你。具体代码来自 Willin,如何设置头像请百度,类似教程很多,需要准备上墙工具。