WordPress 代码实现最新评论自动排第一功能
我们做独立博客的,一般都会有一个最新点入功能,大部分都是根据来访者的 IP,自动把最新访客的博客排在第一位。而博客导航使用的最新访客却不是根据来访 IP 排行,而是根据最新评论/留言来自动排第一位。换句话就是说只要来访者在本站评论/留言,该访客的博客就会自动排在第一位。
实现的方法也比较简单,其实就是通过 SQL 查询语句,查出最新评论的访客昵称及网址,然后去掉重复的记录即可。
具体代码操作步骤如下:
1、把以下代码放入到所用主题的 functions.php 最后一个 %> 前。
- //最新评论排第一
- function Autofirst($af){
- global $wpdb;
- $queryaf="select comment_author, comment_author_url, comment_date from $wpdb->comments where comment_ID in (select max(comment_ID) from $wpdb->comments where comment_approved='1' and comment_author_url !='' and user_id='0' GROUP BY comment_author_email) ORDER BY comment_date DESC LIMIT $af";
- $wally = $wpdb->get_results($queryaf);
- foreach ($wally as $commentaf){
- $tmpy= "<li><a target=\"_blank\" href=\"".$commentaf->comment_author_url."\">".$commentaf->comment_author."</a></li>";
- $outputy .= $tmpy;
- }
- $outputy = "<ul>".$outputy."</ul>";
- echo $outputy ;
- }
输出样式可以自定义,毕竟每个博客的样式都不一样,这个就要靠小伙伴们自己发挥了,只需要在以上代码中的 <ul> 中添加一个 class 属性即可。
2、把以下代码放入需要显示最新评论自动排第一的地方,如留言板。
- <?php Autofirst(20);?>
其中 20 表示显示 20 个最新访客,这个数值可以自定义,一定不能为空,要不然会出错,最起码要大于 0 以上。
此时,我们的 WordPress 博客已经能够实现最新评论自动排第一的功能了,赶紧试试吧。
如果想显示其他类型的样式,我们只需要把第一步代码中的 $tmpy 修改一下即可,如可以改成显示头像的,改成友情链接的,也可以改成读者墙样式的,具体就靠大家发挥了。
杂烩网
欢迎每天互访互评,本站的每评论一次排名第一覆盖全站!
九哥@杂烩网
我这也是,只是没有放在首页。
gezi
没有美化样式啊 大佬 差评!!O(∩_∩)O哈哈~
九哥@gezi
样式还是自己DIY比较好,毕竟每个人喜好不一样。
gezi@九哥
关键是想用,但是又不会美化,这就很尴尬了
九哥@gezi
那就扒代码吧?
action
这个功能很赞呀,可惜没有CSS样式,实现不了。
九哥@action
基本不需要什么样式,很简单的。
青山
我加在知更鸟主题里,显示的是一竖竖的,是不是要对应的css
九哥@青山
嗯,样式要自己调整。
涂红伟
一直好奇boke112是如何实现这个功能,看到大神的教程原来是这样实现的,学习了。
九哥@涂红伟
可以体验一下。
闲鱼
点赞,这个功能蛮好的。之前也考虑过用,后来觉得不太适合我,一是放页面的话有缓存显示也不及时,二是首页没问题,也不想给访客一种评论就能置顶链接的意思,很容易造成不看文章只想评论的现象。评论自己审核卡得很严,审核也不及时,哈哈
九哥@闲鱼
我全站评论链接都取消了,包括这个,为的就是防止垃圾评论,引流发广告的。认真评论,等级够了,链接会显示的。
懿古今@九哥
直接取消评论链接这个比较狠,用户想要点击回访都不行,个人认为还是建议保留评论者链接地址,不过可以设置1个月或3个月内无评论的就不显示评论链接。
九哥@懿古今
也不是都取消了,只要评论等级到【书童】,还是会显示链接的。