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);//否者创建头像缓存目录
 $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 = home_url();
 list($width,$height,$type,$attr) = getimagesize($g);//获取头像参数
 $e = ABSPATH .'avatar/'. $f .'-'.$width.'.jpg';
 $t = 604800; //设定7天, 单位:秒
 if ( empty($default) ) $default = 'http://i.leiue.com/avatar.php';
 if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者文件超过7天才更新
  copy(htmlspecialchars_decode($g), $e);
 }else{
  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'-'.$width.'.jpg'));
 }
 if (filesize($e) < 500) copy($default, $e);
 return $avatar;
}

在开发的时候,你还可以再这段代码收尾加上一个控制功能,方便开启或者关闭头像缓存功能。

当然在新版的WordPress中,get_avatar函数已经支持srcset来适应高清屏,一些不好的代码在高清屏下可能出现问题。开发者们还是按照自己的喜好或许需要来进行合适的开发和适配咯!

时间: 2024-09-20 05:47:00

WordPress缓存不同大小的Gravatar头像方法的相关文章

WordPress博客推广之Gravatar头像设置

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

WordPress实现Gravatar头像缓存的例子

现在越来越多的网站支持Gravatar头像,越来越多的网友设置了个性化Gravatar头像,wordpress也是默认使用Gravatar头像,但是Gravatar毕竟是在墙外的,当一个页面上需要展示很多个Gravatar头像的时候,难免会影响到页面载入速度,为了提高用户体验,我们可以把头像文件缓存到本地服务器上. 首先在你的博客根目录下创建一个文件夹,专门用来存放缓存的Gravatar头像文件,比如"avatar",权限设置同目录下其他文件.然后在修改functions.php文件,

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

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

WordPress中用于获取及自定义头像图片的PHP脚本详解_php技巧

get_avatar()(获取头像)get_avatar() 函数用来获取置顶邮箱或者用户的头像代码,在评论列表中非常常用. 这个函数提供一个 get_avatar 过滤器,用来过滤头像的 Html 代码(img 标签). 如果在后台 "设置" 的 "讨论" 里关闭 "显示头像选项" 则返回 False. 用法 get_avatar( $id_or_email, $size, $default, $alt ); 参数 $id_or_email (

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头像被墙的四种解决方案

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

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

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

解决Gravatar头像、Google fonts和Google ajax不能使用的方法

Gravatar头像现在大陆地区偶尔无法访问,还有各种google服务也用不了.对于"一枚程序员"来说是不能容忍的. 于是麦葱弄了个解决之法--使用nginx反向代理Gravatar头像.Google fonts和Google ajax. 反代之前需要确定nginx已经安装了proxy_cache模块并配置好路径及参数. 下面是麦葱在nginx.conf中配置的代码: http {     #其他代码...#     proxy_connect_timeout 5;     proxy