Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球通用头像”。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。
如何申请Gravatar?
因为Gravatar的服务器在国外,又因为伟大的Wall,在国内访问使用该功能的网站或博客,可能因为载入速度过慢而导致页面一直在载入中甚至头像无法显示,这是一个非常糟糕的用户体验。将头像缓存下来,定时更新,而头像图片的文件一般不会很大,不需要暂用很大的服务器空间,因此缓存Gravatar头像是一个加快网站访问速度的高性价比选择。
很简单,在所使用的主题的function.php文件中加入以下代码,不破坏原文件结构即可:
/* * Save avatar image to SAE Storage * @Version: 1.2 * @author Chang * @blog http://lanfei.sinaapp.com/ */ function get_avatar_cache($avatar){ if($_SERVER['PHP_SELF'] == '/wp-admin/options-discussion.php') return $avatar; $s = new SaeStorage(); $tmp = strpos($avatar, 'avatar/') + 7; $avatar_id = substr($avatar, $tmp, strpos($avatar, '?') - $tmp); $tmp = strpos($avatar, 'avatar/') + 7; $pattern = "/(<img.* src=\')([^\']*)(\'.*)/"; $avatar_url = preg_replace($pattern, "$2", $avatar); $avatar_url = str_replace("&", "&", $avatar_url); $avatar_file = 'avatars/' . $avatar_id . '.png'; //echo '<!--' . $avatar_url . '--> // <!--' . $s->getUrl('wordpress', $avatar_file) . '-->'; if(!$s->fileExists('wordpress', $avatar_file)){ $content = @file_get_contents($avatar_url); if(!$content) return $avatar; $attr = array('expires' => 'now plus 14 day'); $result = $s->write('wordpress', $avatar_file, $content, -1, $attr); if ($result != true) var_dump($s->errno(), $s->errmsg()); } $avatar = preg_replace($pattern, "$1" . $s->getUrl('wordpress', $avatar_file) . "$3", $avatar); return $avatar; } add_filter('get_avatar', 'get_avatar_cache');
=======================签 名 档=======================
原文地址(我的博客):http://www.clanfei.com/2012/04/565.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================