当前位置:首页 > CMS教程 > WordPress > 列表

WordPress实现Gravatar头像缓存的例子

发布:smiling 来源: PHP粉丝网  添加日期:2015-10-16 10:43:06 浏览: 评论:0 

wordpress博客默认用的就是Gravatar头像了,但现在它已经在强外了,所以我们为了提升它的访问性能可以尝试使用缓存功能来解决这个问题,具体的操作步骤如下。

现在越来越多的网站支持Gravatar头像,越来越多的网友设置了个性化Gravatar头像,wordpress也是默认使用Gravatar头像,但是Gravatar毕竟是在墙外的,当一个页面上需要展示很多个Gravatar头像的时候,难免会影响到页面载入速度,为了提高用户体验,我们可以把头像文件缓存到本地服务器上。

首先在你的博客根目录下创建一个文件夹,专门用来存放缓存的Gravatar头像文件,比如“avatar”,权限设置同目录下其他文件。然后在修改functions.php文件,或者主题自带functions文件的话,可以在主题的functions文件上修改,末尾处添加以下代码,自行设置头像超时天数。然后刷新下页面看看头像能否正常显示,再去后台看看avatar目录下是否创建了缓存文件。

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

除了此方法外还可以使用插件来实现,现在整理了几款插件,头像缓存插件:

GravatarLocalCache

FV Gravatar Cache

WP Gravatar Mini Cache

Gravatar Cache

Hacklog Gravatar Cache

以上头像缓存插件,功能类似,都是把Gravatar头像下载到本地服务器上,然后读取缓存的图片,从而提高加载速度。启用插件后,第一次打开有头像的页面可能会较慢,因为正在下载缓存图片,之后速度会明显提升。

Tags: WordPress缓存 WordPress头像

分享到: