这篇没啥新意,就是给新来的朋友评论输入email时实时显示gravatar头像,以前有朋友问我,我总是推荐他们自己搜索去。这次我也写个简单点的教程吧。我知道@qiqiboy那里有一篇更强大的,不过他是js版本的。我这里提供一个简单的jQuery版本,与网上的一样,输入email即时显示你的gravatar头像。不同之处在于,我新加入了判断:只在游客第一次输入时载入相关的js(大约8kb)。节省资源,也不会拖慢速度。
1、需要在comment.php里面准备的访客头像位置:
<div id="real-avatar"> <?php if(isset($_COOKIE['comment_author_email_'.COOKIEHASH])) : ?> <?php echo get_avatar($comment_author_email, 50);?> <?php else :?> <?php global $user_email;?><?php echo get_avatar($user_email, 50); ?> <?php endif;?> </div>
解释下,上面的代码会显示默认后台头像,如果是老访客,就显示cookie记录的邮箱对应的头像(直接读cookie避免有时出现张冠李戴的情况)
2、real-avatar原本需要的代码,包括一段jQuery代码和MD5插件:点击这里下载,关键代码其实只有一句:只是需要额外的一个转换MD5的js。
jQuery('#email').blur(function(){jQuery('#real-avatar .avatar').attr('src','http://www.gravatar.com/avatar.php?gravatar_id=' + hex_md5(jQuery('#email').val())) + '&size=32&d=identicon&r=G&default=http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=32';jQuery('#Get_Gravatar').fadeOut().html('看看右边头像对不对?').fadeIn('slow');});
});
3、继续在comment.php里面修改,主要是看是否有评论者cookie,判断方法不用多说,我的是把访客欢迎结合起来:老朋友显示欢迎词和评论次数,新访客就加载上面那个实时gravatar的js,两不误。如下:
<?php if(isset($_COOKIE['comment_author_email_'.COOKIEHASH]) && isset($_COOKIE['comment_author_'.COOKIEHASH])) : ?> <div id="commentwelcome"> <?php printf(__('嘿! <strong>%1s</strong>, 欢迎回来! 评论指导否?'), $comment_author); ?><a id="edit_profile" title="重新填写资料" href="javascript:void(0);"><?php _e(' (编辑信息?)'); ?></a> </div> <?php else:?> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/realgravatar.js"></script> <?php endif; ?>
PS:本来用js判断email文本域里面是否有值来动态加载js更方便,可惜我还不会ajax加载js,用php判断也不错。
PS2:好久没折腾了,最近太忙,估计模板也不会变动了。记录点生活也挺好的,我博客的定位就是伪技术+生活流,更新还是有的。本来也不抱什么希望有读者,意外发现Google Reader还有50+订阅(点击自己的feed,查看详情,可见自己GR订阅量),多谢各位支持啦~本文晚上写,早上定时发,看看情况。
貌似现在你的主题没有使用这个功能?
@倡萌
用到了的,这个只给第一次留言的朋友用上,如果你没有cookie那就能看到
效果不错哦~~
真好,以后自己也会设置了,谢谢
来看看折腾一下。