首先在网站的根目录建立文件夹:avatar,权限为:755, 这是准备 gravatar 缓存的路径。
然后把一个50×50的jpg图片改名为:default.jpg,把它存到刚才建立的 gravatar 缓存文件夹 avatar 里面。
下面是修改代码的方法:
1,进入后台,在 外观 编辑 那里,然后编辑 functions.php 文件,也可以把这个文件下到本地电脑再进行编辑。
在functions.php文件找到下面的代码
foreach ($comments as $comment) {
$email=$comment->comment_author_email;
在上面这两行代码中间插入下面的代码进去:
(也就是在 foreach ($comments as $comment) { 下面添加下面的代码进去)
$p = ‘avatar/’;
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .’.jpg’;
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo(‘wpurl’). ‘/avatar/default.jpg’;
$s = ’32′; //头像大小 自行根据自己模板设置
$r = get_option(‘avatar_rating’);
$g = ‘http://www.gravatar.com/avatar/’.$f.’.jpg?s=’.$s.’&d=’.$d.’&r=’.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
2,找到下面的代码
$email=$comment->comment_author_email;
$grav_url=”http://www.gravatar.com/avatar/”.md5($email).”?s=32″;
把 $grav_url=”http://www.gravatar.com/avatar/”.md5($email).”?s=32″; 改成 $grav_url=”../$a”;
到这时已经有一部分头像实现了头像缓存了。你可以先保存测试下效果,再打开网站,看看网站右边的 最新评论 和 最新留言 的头像图片地址是不是变成自己网站的址地了。
3,继续编辑 functions.php 文件,找到下面的内容:
//最新评论、留言
function recent_comment
在 //最新评论、留言 上面插入下面的代码:
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id=”li-comment-<?php comment_ID() ?>”>
<div id=”comment-<?php comment_ID(); ?>”>
<div>
<?php
$p = ‘avatar/’;
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .’.jpg’;
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo(‘wpurl’). ‘/avatar/default.jpg’;
$s = ’48′; //头像大小 自行根据自己模板设置
$r = get_option(‘avatar_rating’);
$g = ‘http://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 bloginfo(‘wpurl’); ?>/<?php echo $a ?>’ alt=” class=’avatar’ />
<?php printf(__(‘<cite>%s</cite> <span>says:</span>’), get_comment_author_link()) ?>
</div>
<?php if ($comment->comment_approved == ’0′) : ?>
<em><?php _e(‘Your comment is awaiting moderation.’) ?></em>
<br />
<?php endif; ?>
<div><a href=”<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>”><?php printf(__(‘%1$s at %2$s’), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__(‘(Edit)’),’ ‘,”) ?></div>
<?php comment_text() ?>
<div>
<?php comment_reply_link(array_merge( $args, array(‘depth’ => $depth, ‘max_depth’ => $args['max_depth']))) ?>
</div>
</div>
<?php
}
更新 functions.php 文件。
4,编辑 comments.php 文件,找到 <?php wp_list_comments(‘avatar_size=48′); ?> ,把这段代码替换为下面的代码:
<?php wp_list_comments(‘type=comment&callback=mytheme_comment’); ?>
更新 comments.php 文件,完毕。
现在已经全面实现了头像缓存的功能,不用插件的,绿色环保。此方法不支持后台头像缓存。