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 条评论

发表评论

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