WordPress创建显示所有评论的页面

Ludou
文章目录

     应网友hongwang777的请求,他需要一个显示他的WordPress博客所有文章评论的页面,同时又想按照月份来显示。我翻阅了一下WordPress的文档,发现函数 get_comments()恰好可以解决这个问题,下面具体实现方法。

实现方法:

1、在当前主题目录下新建一个php文件,命名为commets-page.php,然后将page.php中的所有代码复制到commets-page.php中

2、删除commets-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容

3、将第一个 <?php 改成

1
2
3
4
<?php
/*
Template Name: All comments
*/

4、将 the_content(); 改成以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 * 名称: WordPress创建显示所有评论的页面
 * 作者:露兜
 * 博客:http://www.ludou.org/
 * 最后修改:2010年08月24日
 */


$comments = get_comments('$status=approve');
$start = '2010-05'; // 起始月份
$month = '2010-01';

foreach($comments as $comm)
{
    $comments_month = date('Y-m', strtotime($comm->comment_date));

    if ($comments_month < $start)
        break;

    if ($comments_month != $month)
        echo '<strong>' . $comments_month . '</strong><br />';
   
    echo '<a href="'. $comm->comment_author_url  .'" rel="nofollow">' . $comm->comment_author . '</a>: ' . $comm->comment_content . '&nbsp;&nbsp;&nbsp;(' . $comm->comment_date . ') <br />';
    $month = date('Y-m', strtotime($comm->comment_date));
}

5、可能你的博客有上万条评论,但是全部显示可能比较麻烦,你可以将以上代码中的 $start = '2010-05'; // 起始月份 ,2010-05改成起始月份,则只显示2010-05之后发表的评论;如果你不想访客在这个页面中发布评论,可以将commets-page.php中类似代码 comments_template(.....); 删除, ..... 代表未知字符

6、进入WordPress管理后台 – 页面 – 创建页面,标题为所有评论(可以自己起名),内容不要填,右侧可以选择模板,选择 All comments 即可

7、评论列表页创建成功!

本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress创建显示所有评论的页面
本文地址:http://www.ludou.org/wordpress-list-all-comments.html

露兜博客博主,男生,业余Web程序员,儒家思想受益者。文采不佳,不喜欢聚光灯,不喜欢吹牛,不喜欢无序的做事方式。闲时喜欢写些代码自娱自乐,并在博客中分享一些个人技术经验。

标签:

32 条评论

我来说两句
  1. 如风物语

    ludou高手,我这种菜鸟不敢乱改代码,前一个站改代码弄出一些莫一起秒的后遗症。

  2. 如风物语

    另感谢您在wp上对我的回复~

  3. only博客

    很实用的知识,学习了!

  4. 好东西分享

    支持一下,看来我也要好好学学PHP了

  5. 如风物语

    集中精力做一件事,人不需要什么都专长。

  6. 棺材中的尘埃

    这个有什么实际的用处吗?

    • Ludou

      这个我不知道,去问问那位网友吧。也许他只是给我留言耍耍我而已,自上次留言就没有给我回复过。

  7. WordPress啦

    谢谢楼主奉献,很好的文章,值得学习

  8. MK

    这个页面的没什么存在的意义。纯技术文章,拜读了……

  9. 感恩

    这个功能不错啊,晚上回家试试。

  10. hongwang777

    萬分感謝博主的付出!
    這個功能對於我的博客非常重要。因爲涉及到歷史的真實。所以評論同文章同等重要而有歷史價值。我代表所有珍重歷史的人們向博主表示感謝!

  11. winky

    试了一下,挺好的,功能都实现了,不过还是要调一下样式才行。。。谢了~

    • Ludou

      关于样式,有什么欠缺的地方吗?

      • winky

        我是想显示出来的评论能留言板那样显示出来(像风格,嵌套布局等),还要加上属于哪篇文章的链接。我看了你的代码,本来想自己加上属于哪篇日志的,不过发觉那个表里没有直接地显示文章链接字段,应该要再写个函数才能实现了。不知博主有没意愿一试?呵呵~

        • Ludou

          这样的样式只能使用者自己写了,这里只输出泛化的评论。

          如果你想同时显示文章标题链接等,你可以安装插件:
          wp-recentcomments

          调用它的函数wp_recentcomments()

  12. Jiefeng

    超强,这个功能还是不错的,有人就是希望看看这个站点的所有评论。
    不知能否套在主循环中,实现分页功能。

  13. 阿福

    您好,謝謝您的教學,我成功的創建了一個「最近兩個月留言」的page,http://prattflora.com/mfastudy/?page_id=16926,但是裡面的link都不正確,不知是哪裡出了錯誤呢?對了,我尋找「顯示本站所有留言」的教學很久了,過去都是使用一個外掛叫做comment-status (由chweng寫的,搜尋關鍵字是Comments Status 計算評論總數),但自從升級之後,該外掛就無法使用了,不知您是否看得出來該外掛裡面哪裡出現錯誤了呢?要是能有人把這個外掛修好,我就要流淚了!

  14. feiyang

    这个很棒,我弄出来了,但其实我更想要 热门文章的一的排行列表页面

    看了很多,都没发实现的,很郁闷啊

    Ludou ,能帮解决一下吗?

  15. feiyang

    有,我已经调出来了。借用插件在页面调出来的.

    嘿嘿

  16. 倡萌

    感觉很不错,目前还不需要这样的功能,做一下记号,呵呵

发表评论

因博主长期在外地出差,您的留言可能暂时不会得到回复。

订阅评论