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 . ' (' . $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也没用,不知谁有好的方法?
大肥羊 广东
要解决第一个问题,用这个《AJAX版“您最近的评论”》更好吧。http://zww.me/ajax-guest-comments.z-turn
十年前 Firefox 33 · Windows 7S̆̈ 江苏 *
@大肥羊 不错,收藏了
十年前 Google Chrome 34 · Windows XP大肥羊 广东
@S̆̈ 果然加上了 🙂 🙂
十年前 Firefox 32 · Windows 7S̆̈ 江苏 *
@大肥羊 好用 😆 根据自己的审美简化了CSS
十年前 WebView 1 · Samsung SM-G9009D