WordPress 免插件版侧边栏读者墙

同学们,我的博客终于又多了一抹色彩,那就是侧边栏的“本月水王”专栏,更多博友称之为读者墙,但是我只是把这个功能放在侧边栏,而不是单独列为一个页面,所以充其量只是一面“小墙”。

读者墙功能最近好像比较火,一方面可以鼓励访客留言,另一方面也方便博主回访。我最初是在林木木那里看到的这个功能、接着又分别在 whispererzwwoOoOo 那里看到了这个效果,有些心动,之后又在六维博客中再次看到了免插件实现读者墙的功能,于是惹起了我折腾 WordPress 的热血沸腾。

用插件实现的方法我就不多介绍了,我就爱玩代码:

一、函数部分:

将以下代码复制到 functions.php 中:

$identity="comment_author";
$passwordpost = " AND post_password=''";
$userexclude = " AND user_id='0' and comment_author != '万戈'";
$approved = " AND comment_approved='1'";
$shownumber = 24;
$counts = $wpdb->get_results("SELECT COUNT(" . $identity . ") AS cnt, comment_author, comment_author_url,comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE MONTH(comment_date)=MONTH(now()) and YEAR(comment_date)=YEAR(now())" .
$userexclude . $passwordpost . $approved . ") AS tempcmt GROUP BY " . $identity . " ORDER BY cnt DESC LIMIT " . $shownumber);

二、引用部分:

将以下代码复制到 sidebar.php 中:

<div class="widget">
<h3>本月水王</h3>
<ul class="ffox_most_active">
<?php if ( $counts ) : foreach ($counts as $count) :
echo  '<li>' . '<a href="'. $count->comment_author_url . '" title="' . $count->comment_author . ' ('. $count->cnt . '评论)">' .get_avatar($count->comment_author_email,32).'</a></li>';
endforeach; endif;
?>
</ul>
</div>

三、样式部分:

以下样式仅作参考。

.sidebar .widget .ffox_most_active li {
list-style:none;
float:left;
border:none;
padding-left:0;
width:41px;
background:none;
}
.sidebar .widget .ffox_most_active img.avatar {
width:32px;
height:32px;
}

就这样,免插件版的读者墙就实现了,效果可以见我的侧边栏(除了首页侧边栏)。其中代码和样式主要参考自 zwwoOoOo 的http://zww.me/archives/24671

  1. Pingback: WordPress制作读者评论排行榜[无插件] | WordPress加油站

  2. Pingback: WordPress制作读者评论排行榜[无插件] | 夹心博客

  3. 请教一下,如何限制最少留言数呢?也就是说留言达到多少才会出现在读者墙内,少于预定条数的就不会显示。

  4. Pingback: 浩子d3主题共享及说明 – 大前端

  5. Pingback: WordPress制作读者墙[无插件] | CONEY

  6. Pingback: WordPress制作读者评论排行榜[无插件] | 冷暖人生

  7. Pingback: WordPress制作读者评论排行榜[无插件] | 径直走

  8. 万哥,我的一点小建议:GROUP BY comment_author改成GROUP BY comment_author_email数量统计上建议通过邮箱统计而非名字,这样做好处有:如果换了名字不会重新统计;2,如果两个人重名,后来者的评论数量不会累加到前者。通过邮箱统计缺点是换邮箱以后重新统计。
    个人的一点小认识,不知道正确不正确,嘿嘿~

  9. 万哥,我又来请教了。在你帮助下搞定了读者墙的那个背景图像,但是我对css不太了解,结果弄出来的不居中,整体的左边距无法设置,右边空了很多。如何才能让居中呢?
    附上我的css:
    .sidebar ul li .ffox_most_active{overflow:hidden;}
    .sidebar ul li .ffox_most_active li{list-style:none; float:left; line-height:0;background:none; padding:1px 0.5px 1px 3px; margin:0px 1px;width:35.5px;}
    .sidebar ul li .ffox_most_active img.avatar{width:28px;height:28px;border:1px solid #dfdfdf;padding:2px;margin:1px 0 0 1.5px;}
    其中,在function中输出的头像大小为32.

  10. Pingback: 为WordPress添加读者墙功能方法(非插件)

  11. Pingback: WordPress 免插件版侧边栏读者墙 - 不知不觉™Unconscious

  12. 将以下代码复制到 functions.php 中
    那段代码加到functions.php 的什么地方啊,新手,不懂能不能说的明白点啊。
    我实现不了

  13. 评论数相同的不知道怎么排序的,我想把评论数相同但时间在后的排在前面,这个代码好像没说啊。。
    不知道代码应该怎么写?

  14. 如果不想放在首页,想新建一个页面叫“留言板”直接添加代码貌似不行,div的class需要改为什么呢?

  15. Pingback: 最近折腾wordpress的一些小结 – Perfume's space

  16. Pingback: 我的Wordpress,这些一个都不能少(二) | 阿邙’S Blog

  17. 老万啊,见你对代码这么痴情,我就...嘿嘿...
    我对代码不太感冒,想把它加在留言本的顶端,但又不会!只会用插件,现在使用的是生活点滴网站发布的读者墙插件,但它点击头像打开的链接,是在当前页,老大,您能不能看一下,把它改成在新窗口打开呢???

  18. 不过有个问题。好像链接的title提示和头像的alt会冲突。鼠标放上去读取不了连接的title - -,但是不知道如何设置头像的alt信息为评论者信息

  19. Pingback: Wordpress 不用插件实现读者墙功能 - 网虫

  20. 刚在想,万头儿的pr什么时候升到4,然后我又多了一个pr4的友链,一抬头,pagerank空的,。。没载入,再刷新,还是空的,一下醒悟过来,啊!!! :arrow: :cry:

  21. 博客不错,在此回来,订阅了。 我刚刚装了一个HOT FRIENDS插件,跟这个差不多,不晓得那个效率更高、速度更快!

  22. 这个很不错哦,之前一直是使用 hotfriend 插件来实现来着 呵呵 ~ 换主题后 插件没用用了,回头试试你的 代码 呵呵

      • OK,明白,还是基于留言者的统计。临时访客是不统计在内的。
        我用的top commentators插件不太理想,显示上经常有问题,也不如你的这个美观,以后有时间改进一下。先谢了。
        你的回复真快!赞!

  23. Pingback: 无插件实现侧栏读者墙 - 萄葡藤 - 我不是在笑,一滴泪静静的滑过了我的脸庞!

  24. 老万,感谢你总是去我的小博留言,我最近除了工作,实在没有很大的精力去回复每一位朋友了,来你这留个言,就算是对你的支持表示感谢吧。

  25. 读者墙,人人喜爱,出自 cosbeta 之手。

    这次,兄弟又显摆了一个技术!想必又一次 煽动 了一次许许多多的童鞋啊!

  26. 感觉这样免插件和不免插件本质上没什么区别,并没有带来效率的提升
    反而修改php带来代码混乱和版本不统一
    如果做成一个插件可以可插拔就最好了