很早就有在wordpress留言框隐藏以前评论过的访客信息的方法,据说可以提高用户体验,不过空着也是浪费地方,我在philna在那里看到他家的主题会提示访客30天内评论了多少次,觉得很好。这样会提高访客评论的积极性,跟排行榜有类似的效果。另外,对于那些曾经留言过,但长时间潜水或好久没来的访客,提示“您好久没留言了”,催促留言 ^_^ ……
这就是相关的代码:
<?php //copy下面的代码到主题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(__('过去30天内您评论了<strong>%1$s</strong>次,感谢关注~' ), $times) : '您很久都没有留言了,这次想说点什么吗?'; return $message; }
使用方法:在comments.php合适的地方,比如留言框上面调用这个函数:
<?php echo WelcomeCommentAuthorBack($comment_author_email); ?>
友情提示,我的主题公告栏也会变化的,不信连续刷新几次看看。。。
@MOPVHS 你得到了它,下次改改评论代码,sf高亮
连续刷新5次后~~
嗨~, MOPVHS 我发现你来了很多次也没有留言! 欢迎发表你的看法.
@MOPVHS 让你光看、光刷新不留言
哟,这个不错啊,greader里加星标注~
@万戈 偷偷从人家主题里拿出来的
@MOPVHS 调用的时候要加上用户邮箱的参数,疏忽了
WelcomeCommentAuthorBack($comment_author_email);
@winy 汗,加参数了,没有用~~~
<?php WelcomeCommentAuthorBack($comment_author_email);?>
<p>我看似公告栏,胜似公告栏,其实就是公告栏... </p>
</div>
然后结果是
<div class="entry">
<p>我看似公告栏,胜似公告栏,其实就是公告栏... </p>
</div>
@MOPVHS 这货不是公告栏,这货不是公告栏,这货不是公告栏这货不是公告栏这货不是公告栏这货不是公告栏这货不是公告栏这货不是公告栏
这货是访客留言提醒用在comments.php里面的,在评论框上面
@winy 呃...我只是想试试。
怪事,难道return $message;无效了~~~
@MOPVHS 有cookie吗,先echo $comment_author_email看看有无值
嵌套多了就是容易变形
@winy 继续测试嵌套~~
我用<?php echo WelcomeCommentAuthorBack($comment_author_email);?>输出了~~
@MOPVHS 耶...BUG~~~
我就知道嵌套多了会出问题,还是改成最大5层
这个的确不错哦
这个可以用
@阿修 水多的地方,灌了多少一目了然
很好的功能,看着折腾的wp这么好,有想换wp程序了。
@许哥儿个人博客 z-blog也挺好的,wp用的人多,折腾的也多