WordPress实现Gravatar头像缓存的例子

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

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

<?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 = 2592000; //?定30天, ?挝?秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //??像不存在或文件超?30天才更新
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');
?>

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

头像缓存插件:

GravatarLocalCache
FV Gravatar Cache
WP Gravatar Mini Cache
Gravatar Cache
Hacklog Gravatar Cache

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

时间: 2024-09-20 06:46:31

WordPress实现Gravatar头像缓存的例子的相关文章

加速Gravatar头像缓存的方法详解

头像用的最多的还是使用Gravatar头像,但是Gravatar头像服务器在国外,速度上肯定有影响,如果很快的缓存Gravatar头像呢? 网上大部分是本地缓存,然后通过本地化Gravatar头像缓存来加快速度. 但是这次我换一种方法,无需加重自己服务器的负担来加快,因为这里有免费的七牛,使用七牛的同步镜像功能,同步Gravatar头像网站,然后把所有Gravatar头像地址改成七牛的地址就可以了.   使用方法: 1.去七牛申请帐号.官网地址:http://www.qiniu.com  推广注

详解WordPress中的头像缓存和代理中的缓存更新方法_php技巧

wordpress评论中的头像是使用Gravatar的头像服务(Gravatar官方注册地址:http://en.gravatar.com),用户的缓存头像一般都是固定不变的,所以我们可以将头像缓存到本地来提高我们网站的访问速度. 我的wordpress avatar目录的头像缓存: wordpress头像缓存功能设置方法首先是在根目录下建立一个文件夹avatar,权限755.再在里面放一个默认的头像(default.jpg),没头像的童鞋就会用默认的.代码如下: function my_ava

WordPress无法显示Gravatar头像被墙的四种解决方案

在当前Gravatar头像服务器被墙的情况下,要想要加快Wordpress显示Gravatar头像的速度,我们可以做那些努力呢?通常的做法大致有以下几种: 1.首先可以做的就是将Gravatar头像图片缓存到自己的虚拟主机或者VPS 上,这样用户访问的就是直接读取自己服务器的图片文件.好处是访问的本地图片,图片的加载非常快!缺点也是显而易见的:运行一段时间后,大量的 Gravatar头像图片会占用非常多的空间,过多的图片导致服务器压力骤增. 2.安装插件:插件有二大类,一类是wordpress评

WordPress缓存Gravatar头像到本地修改

在wordpress目录下建立文件夹:avatar,文件夹权限为:755,如果不行文件夹权限就设置成777, 这是gravatar头像 缓存的路径.   设置默认头像 制作一张默认头像,也可以直接在wordpress后台>设置>讨论 里copy一张,命名为"default.jpg" ,放在 avatar文件夹里面.实在打不开,我这里就提供一个我在使用的头像   添加缓存代码 将下面的代码复制到模板的 functions.php 文件中即可:  代码如下 复制代码 funct

wordpress禁止没有Gravatar头像的访客提交评论

1 为何限制没有Gravatar头像的访客 前几天博主就一直在想着是否要限制没有gravatar头像的用户在博客留言,主要原因有三点: 1.博客使用的是wordpress程序,而Gravatar早在07年就被Automattic公司收购并在wp程序上发扬光大.所以,wp博客和gravatar头像天生就是一对,当然要让他们在一起了. 2.屏蔽广告.很多spamer都是没有gravatar头像的,限制没有gravatar头像的访客就等于过滤掉了相当一部分的垃圾广告.扯远一点,多说插件为众多广告商做出

WordPress缓存不同大小的Gravatar头像方法

改善功能:支持不同大小的头像:支持自动创建缓存目录. 下面子凡就不多说了,把一下代码加入到你主题的function.php中即可:  代码如下 复制代码 //缓存Gravatar头像 add_filter('get_avatar', 'fanly_cache_avatar'); function fanly_cache_avatar($avatar) {  if(!is_dir('avatar'))//判断是否有缓存目录   mkdir('avatar', 0755, true);//否者创建头

WordPress评论者头像缓存到本地的方法详解

各种忙碌,不多说了,许久未来,gravatar被墙已经有一阵了,看了下本地的头像缓存全成了默认头像,还好没有影响到访问速度,下面是最新的缓存到本地的代码,解决了gravatar被墙的问题,依旧是替换原来functions.php中的相关代码,清除掉你本地的缓存图片,让重新生成吧~~ 可能现在本站有部分页面打开较为缓慢,是因为正在生成新的缓存头像,会慢点,打开过一次就OK了,当然,别人打开 过的话 也会缓存完成,你访问也就快了~ 见谅~    代码如下 复制代码   function my_ava

WordPress博客推广之Gravatar头像设置

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 从事于网站推广的站长们都应该知道,不管是那方面的推广,细节的东西都应该要做的很好.网站推广的方法很多,博客留言的推广也是众多方法中的一种,博客留言推广中也有项要注意的就是头像的设置. Gravatar头像可以通过它的官网http://en.gravatar.com进行设置,设置好Gravatar头像后,它就可以在 wordpress或是支持G

Wordpress 博客如何实现自定义Gravatar头像

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 Gravatar 头像指的是当你到其他博主博客留言的时候显示的头像,很多站长的头像都是选择国际通用Gravatar头像,因为他们找不到设置的地方,更不懂如何去实现自定义Gravatar头像,今天在这里跟大家分享下自定义Gravatar头像的方法,先看张图进一步解释下Gravatar头像: 上图是我博客中其中一篇博文的部分列表,"设计