添加Gravatar头像缓存功能

最近几天Gravatar网站貌似不稳定,图片都显示不出来,然后网页还一个劲的加载,于是就决定添加Gravatar头像本地缓存功能,试了几种方法,貌似都有那么点问题,可能是因为我的是主机吧,后来终于找到一个简易插件,然后把里面代码考出来加到主题function文件里,终于搞定了。现在和大家分享一下:

第一步:在网站目录下新建一个文件夹,老莫建的是avatar,大家可以随意起名字,但是要修改下面第二步中的相应代码。
第二步:在主题的functions.php中加入如下代码:
function get_cavatar($source) {
$time = 1209600; //The time of cache(seconds)
preg_match('/avatar\/([a-z0-9]+)\?s=(\d+)/',$source,$tmp);
$abs = ABSPATH.'avatar/'.$tmp[1].'.jpg';
$url = get_bloginfo('wpurl').'/avatar/'.$tmp[1].'.jpg';
$default = get_bloginfo('wpurl').'/avatar/'.'default.jpg';
if (!is_file($abs)||(time()-filemtime($abs))>$time){
copy('http://www.gravatar.com/avatar/'.$tmp[1].'?s=64&d='.$default.'&r=G',$abs);
}
if (filesize($abs)<500) { copy($default,$abs); }
return '<img alt="" src="'.$url.'" width="'.$tmp[2].'" height="'.$tmp[2].'" />';
}
add_filter('get_avatar','get_cavatar');

这种方法不用修改现有主题其他文件,WP-RecentComments插件也可以兼容到,很好很强大!

引用链接

文章作者:H T S »» 来源网站:Have To Share
本文地址:添加Gravatar头像缓存功能 »» 短链:http://w.cpanle.com/?p=562
版权所有 © 转载时必须以链接形式注明作者和原始出处!

发表评论