/ 软件 / 1287阅

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

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也没用,不知谁有好的方法?


2014/12/17

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

# 写于十年前,改于二年前
           

4

  1. 大肥羊

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

    Firefox 33 · Windows 7
    1. S̆̈

      @大肥羊不错,收藏了

      Google Chrome 34 · Windows XP
      1. 大肥羊

        @S̆̈果然加上了 🙂 🙂

        Firefox 32 · Windows 7
        1. S̆̈

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

          WebView 1 · Samsung SM-G9009D

发表回复

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