在wordpress上展示留言最多的文章

我打算在wordpress的侧边栏上展示留言最多的文章,想想应该有现成的plugin,首先还是去网上扒啦了一圈,大多数结果都是雷同的,利用多表联查之类的取得评论最多的文章,性能上可能不太好,因此总觉得不太合意。最后我找到了下面这种办法,比较理想。

首先构造一个sql,从wordpress的数据库里读出需要的文章,利用wp_posts表的comment_count字段(评论数)来排序。wp_posts表可能是别的名字,因为你在安装的时候可能取了一些其它的前缀,为了具有更好的适应性,利用wordpress的一个特别变量$wpdb->posts,它保存了wp_posts的表名。下面是这段sql:

CODE:
  1. SELECT ID, post_title, comment_count
  2. FROM $wpdb->posts
  3. ORDER BY comment_count DESC

以上,利用comment_count字段倒排,取得评论最多的文章,顺便还要加上一些限制,比如一次取5条记录:

CODE:
  1. SELECT ID, post_title, comment_count
  2. FROM $wpdb->posts
  3. ORDER BY comment_count DESC
  4. LIMIT 5

中间若干过程省略,我们把上面sql的查询结果在sidebar.php里头展示:

CODE:
  1. <?php
  2.  
  3. $posts = $wpdb->get_results("SELECT ID, post_title, comment_count FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 5");
  4.  
  5. echo '<ul>';
  6. foreach($posts as $post) {
  7.  
  8. $id = $post->ID;
  9. $title = $post->post_title;
  10. $count = $post->comment_count;
  11.  
  12. echo '<li><a href="' . get_permalink($id) . '">' . $title . '</a> (' . $count . ')</li>';
  13.  
  14. }
  15. echo '</ul>';
  16.  
  17. ?>

如果再花点功夫,上面的这段就能做成一个不错的widget,很方便的在wordpress后台里拖拽。

参考文章

HOWTO: DIY “Most commented” Wordpress widget

作者: volcano 发表于6月 25, 2007 at 8:00 am

版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原始出处作者信息及此声明

Tags: ,

7 条评论 »

  1. xLight 于 2007-06-25 @ 10:10:00 留言

    那你就做成 widget 放出来啊

  2. volcano 于 2007-06-25 @ 10:36:25 留言

    有这需求吗?这个不难,回头去鼓捣一个出来。

  3. » 如何制作最多评论的Wordpress widget » WEB实用技术文摘 于 2007-07-05 @ 21:49:46 留言

    […] 参见”在wordpress上展示留言最多的文章“ […]

  4. 左拉 于 2007-10-18 @ 03:06:29 留言

    好厉害,适合最新版本么

  5. volcano 于 2007-10-18 @ 15:17:36 留言

    最新版本的这部分没有变化

  6. 爆米花 于 2007-10-26 @ 11:06:23 留言

    前面的看得明白
    “很方便的在wordpress后台里拖拽。” 这句目前表示关注

  7. volcano 于 2007-10-26 @ 17:55:48 留言

    如果开启了widget,那么可以在wordpress的主题管理中,将一些安装好的widget拖动到某个位置,比如侧边栏,footer.具体情形还得自己用过才知道.

RSS 为此帖反馈评论 · 反向跟踪 网站

留条评论