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

实现方法:

1、在当前主题目录下新建一个php文件,命名为commets-page.php,然后将page.php中的所有代码复制到commets-page.php中
2、删除commets-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容
3、将第一个 《?php 改成


<?php
/*
Template Name: All comments
*/

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


/**
 * 名称: WordPress创建显示所有评论的页面
 */

$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 . '   (' . $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、评论列表页创建成功!