话说下周就要考试了,考试结束后再来两周课程设计(C++)就可以放假了,一学期好快啊!当代大学生都有一个特点,到考前自习室满满。平时基本上没多少人,悲哀啊...下午看了一下午微机原理与接口技术,不过还是不太明白,看的多了也会累,于是就休息一下,折腾一会wp了,呵呵。

销售讲究顾客是上帝,当然博客中访客的位置也是最重要的了,一个博客外观细节的好坏或多或少会影响一个留言者的心情(除了spamer...)。那么提高访客的体验至少应该放在一个博客的相当重要的位置。所以如果你也赞同这些的话,就 follow me 吧!

首先上效果图,还是那句话:无图无真相!

WP记录评论者信息,提高访客体验

这是用缓存记录了访客信息,而且显示了访客近一个月的评论次数。

首先说缓存部分,下载相关js文件:infohide.js

js相关代码如下,供参考,你也可以保存下列代码为infohide.js:(修正了万戈的一个错误,导致部分主题对新访客不能显示信息输入框,问题有winy发现,在三石映像找到答案)

$(document).ready(function() { //开始
if($('#author').val()!=""){ //判断用户框是否有值,此处万戈方法为//if($('input#author[value]').length>0){,对我的主题无效
$("#author_info").css('display','none'); //将id为author_info的对象的display属性设为none,即隐藏
var change='<span id="show_author_info" style="cursor: pointer; color:#036;">更改信息 &raquo;</span>'; //定义change,style是定义CSS样式,让他有超链接的效果,color要根据你自己的来改,当然你也可以在CSS中定义#show_author_info来实现,这样是为了不用再去修改style.css而已!
var close='<span id="hide_author_info" style="cursor: pointer;color:#036;">更改完毕 &raquo;</span>'; //定义close
$('#welcome').append(change); //在ID为welcome的对象里添加刚刚定义的change
$('#welcome').append(close); // 添加close
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').click(function() { //鼠标点击change时发生的事件
$('#author_info').slideDown('slow'); //用户输入框向下滑出
$('#show_author_info').css('display','none'); //隐藏change
$('#hide_author_info').css('display','inline'); //显示close
$('#hide_author_info').click(function() { // 鼠标点击close时发生的事件
$('#author_info').slideUp('slow'); //用户输入框向上滑
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').css('display','inline'); })})}}) //显示change

将js上传到主题所在文件夹中,位置自定,我放在js子文件夹下。

打开主题的comments.php,找到输入信息的位置类似于:<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" /> 您的昵称 <em>(必填)</em></p>

然后在其上边插入如下代码:

<?php if ( $comment_author != "" ) : ?>
<?php echo get_avatar($comment_author_email,'18', $default = get_bloginfo('template_directory') .'/images/avatar.png'); ?>
<div id="welcome">
<?php printf(__(' ')) ?><?php printf(( ': 欢迎 <strong>%s</strong> 归来!'),$comment_author) ?><?php echo WelcomeCommentAuthorBack($comment_author_email); ?>
</div>
<?php endif; ?>

红色标注部分分别为头像大小和默认头像路径(默认头像可以不要),<?php echo WelcomeCommentAuthorBack($comment_author_email); ?>为显示一个月内评论几次。

然后在评论者姓名、电邮、网址的代码输入框用 <div id="author_info"></div>包起来,到此,comments.php 修改结束;

下边是最近一个月评论次数。function.php中插入如下代码:

/**
* welcome message
* @param unknown_type $email
* @return void|string
*/
function WelcomeCommentAuthorBack($email = ''){
if(empty($email)){
return;
}
global $wpdb;

$past_30days = gmdate('Y-m-d H:i:s',((time()-(24*60*60*30))+(get_option('gmt_offset')*3600)));
$sql = "SELECT count(comment_author_email) AS times FROM $wpdb->comments
WHERE comment_approved = '1'
AND comment_author_email = '$email'
AND comment_date >= '$past_30days'";
$times = $wpdb->get_results($sql);
$times = ($times[0]->times) ? $times[0]->times : 0;
$message = $times ? sprintf(__('过去一个月内您评论了 <strong>%1$s</strong> 次,感谢你的关注!' ), $times) : '您很久都没有留言了,这次说点什么吧?';

return $message;
}

最后,在header.php(footer.php) 中引用 以上 infohide.js( JQuery在前 ):

<?php if ( is_singular() ){ ?>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/infohide.js"></script>
<?php } ?>

好了,结束了!喜欢的就折腾去吧!

最后,祝来访的在校学生期末考试顺利,包括我了,嘿嘿!

综合转载自:万戈>>记录并隐藏 WordPress 评论者信息

winy>>WordPress显示最近评论次数

82,378
更新日期: 2010-12-17
文章标签: ,,
文章链接: http://www.xishao.net/wp/518.html
站方声明: 除特别标注, 本站所有文章均为原创, 互联分享, 尊重版权, 转载请注明.