Gravatar是WordPress标配的头像服务。
只要你在Gravatar的服务器设置上传了你自己的头像,便可在任何支持Gravatar的博客、论坛使用它。但由于GFW的原因, Gravatar 服务经常会挂掉。
所以有必要在自己的网站来缓存 Gravatar 头像,保证Gravatar 头像的正常使用,并且也能变相地给博客提速。
下面的代码来自于Willin。Willin大神不玩WordPress好多年了,所以绝对值得收藏这段经典代码。
WordPress免插件仅代码实现Gravatar头像缓存的方法
1、将下面的代码放到主题的funtions.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');
默认缓存时候为14天,可以随意修改,比如一个月或者几十天都可以。
2、在WordPress安装根目录下新建名为 avatar 的文件夹 ,设置该文件夹的权限为 755 或者干脆777。放入一张同尺寸的头像图片命名为default.jpg。
随后刷新一下含有评论的文章,然后去 avatar 的文件夹看看有没有缓存的头像。