eleven在《永安仙居皤滩乡》上评论说:“你的游记,我也不知道应该从哪里有序地看,往往跳跃似的点开相关,有时半工作状态,一篇能看半天时间,过后就不知道在哪一处留言过了……”

感觉站点有不能让读者清晰了解结构的问题,除了在每篇文后评论框前做了个函数把每篇的“前文后记”链接补进去、继续用comment-reply-notification插件作留言电邮通知、小工具栏近期留言工具等外,想到再做一个近期留言页面方便留言者查看。

网上找了一圈,找到《WordPress创建显示所有评论的页面》文,再根据自己的需求,调整了样式,并且加入了只显示前一年留言的函数。

1、在当前主题目录下复制page.php,重命名为page-comment.php;

2、删除page-comment.php开头的注释,改为/*Template Name: All comments*/ ;

3、将 the_content(); 删掉,添加代码:

<?php
//WordPress创建显示所有评论的页面

$comments = get_comments('$status=approve');
$month = date('Y-m');
//只显示一年内的留言
$last = date('Y')-1;
$start = $last.'-'.date('m');

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

    if ($comments_month < $start) 
        break;

    if ($comments_month != $month)
        echo '<h2>' . $comments_month . '</h2><p>';

	$link= esc_url( get_comment_link($comm->comment_ID) );
	$title=get_the_title($comm->comment_post_ID);
    
    	echo '<li style="word-wrap:break-word;overflow:hidden;"><a href="'. $comm->comment_author_url  .'" rel="nofollow">' . $comm->comment_author . '</a>在<a href="'.$link.'">'.$title .'</a>上的评论:' . $comm->comment_content . '&nbsp;&nbsp;&nbsp;(' . $comm->comment_date . ')</li> ';

	//if ($comments_year < date('Y'))
	//还没实现根据年份翻页,求更好的方法

	$month = date('Y-m', strtotime($comm->comment_date));
}

?>

4、进入WordPress管理后台-页面-创建页面“留言”,页面属性中选“All comments”。

5、效果见“评说”页面。

最后有个遗憾,没找到根据年份分页的好办法,试了wp_link_pages也没用,不知谁有好的方法?


更新:WORDPRESS创建显示近期评论的页面

共有 4 条评论

  1. 大肥羊

    广东

    要解决第一个问题,用这个《AJAX版“您最近的评论”》更好吧。http://zww.me/ajax-guest-comments.z-turn

    十年前 Firefox 33 · Windows 7

    回复

    • S

      江苏

      @大肥羊 不错,收藏了

      十年前 Google Chrome 34 · Windows XP

      回复

      • 大肥羊

        广东

        @S 果然加上了 🙂 🙂

        十年前 Firefox 32 · Windows 7

        回复

        • S

          江苏

          @大肥羊 好用 😆 根据自己的审美简化了CSS

          十年前 WebView 1 · Samsung SM-G9009D

          回复

       

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注