Gravatar,全称是「Globally Recognized Avatar」,Wordpress 等主流博客系统,基本都是采用 Gravatar 头像。
最近周良穿梭与各个博客之间,发现很多博客的 Gravatar 评论头像无法显示,貌似是被墙了,不知道大家有没有遇到这种情况,周良这里已经惨不忍睹了…
所以,本文将提供几个缓存 Gravatar 头像的方法,这样不仅可以防止头像被墙,也可以提高自己网站的载入速度。
(下面列举了此插件的一些功能,并附上后台设置截图)
这两个插件都是国内高手写的头像缓存插件,当然都是中文的。周良没有使用这2个插件,前者的后台设置比后者丰富,后者完全是傻瓜型,安装启用后即可看到效果!
周良使用的是 gravatarlocalcache 插件,后台很简单,无需改动什么,直接点击Update Options »
即可
这个应该比 WP Gravatar Mini Cache 简单多了,适合懒人或者Wordpress新手…
这个方法是周良无意间在网上看到的,据说效果不错。如果您愿意花几分钟操作的话,那么就接着看下去吧。
wp-content
的同级目录建立资料夹: /avatar
权限:755
, 这是准备 gravatar 缓存的路径comments.php
或是在 functions.php
里的 function mytheme_comment($comment, $args, $depth)
会有一段类似这样的语句:<?php echo get_avatar($comment,$size=’50′,$default=’<path_to_url>’ ); ?>
替换成:<?php
$p = ‘avatar/’;
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .’.jpg’;
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo(‘url’). ‘/avatar/default.jpg’;
$s = ’50′;
$r = get_option(‘avatar_rating’);
$g = ‘https://www.gravatar.com/avatar/’.$f.’.jpg?s=’.$s.’&d=’.$d.’&r=’.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
?>
<img src=’<?php echo $a ?>’ alt=” />
对一些主题,这样做之后,可能会使头像没法显示。
这时只要简单的把 $p = ‘avatar/’
改成 $p = ‘/avatar/’
上述修改代码的方法,仅仅对文章页面的评论有效.
如果您使用了 wp-recentcomments 插件,或是 WordPress thread comment,想知道他们如何缓存头像到本地。可以看看下面的两篇文章。
万戈:缓存 Gravatar 头像至本地服务器——提供了WordPress thread comment解决头像缓存的办法。
whisperer:全面启用gravatar头像缓存——提供了wp-recentcomments头像启用缓存的方法。