WordPress创建显示所有评论的页面
应网友hongwang777的请求,他需要一个显示他的WordPress博客所有文章评论的页面,同时又想按照月份来显示。我翻阅了一下WordPress的文档,发现函数 get_comments()恰好可以解决这个问题,下面具体实现方法。
实现方法:
1、在当前主题目录下新建一个php文件,命名为commets-page.php,然后将page.php中的所有代码复制到commets-page.php中
2、删除commets-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容
3、将第一个 <?php 改成
1 2 3 4 | <?php /* Template Name: All comments */ |
4、将 the_content(); 改成以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /** * 名称: WordPress创建显示所有评论的页面 * 作者:露兜 * 博客:http://www.ludou.org/ * 最后修改:2010年08月24日 */ $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、评论列表页创建成功!
本文版权归露兜博客所有,转载引用请完整注明以下信息:
本文作者:Ludou
本文标题:WordPress创建显示所有评论的页面
本文地址:http://www.ludou.org/wordpress-list-all-comments.html
ludou高手,我这种菜鸟不敢乱改代码,前一个站改代码弄出一些莫一起秒的后遗症。
你希望自己永远都是菜鸟?
另感谢您在wp上对我的回复~
很实用的知识,学习了!
支持一下,看来我也要好好学学PHP了
集中精力做一件事,人不需要什么都专长。
这个有什么实际的用处吗?
这个我不知道,去问问那位网友吧。也许他只是给我留言耍耍我而已,自上次留言就没有给我回复过。
谢谢楼主奉献,很好的文章,值得学习
这个页面的没什么存在的意义。纯技术文章,拜读了……
这个功能不错啊,晚上回家试试。
萬分感謝博主的付出!
這個功能對於我的博客非常重要。因爲涉及到歷史的真實。所以評論同文章同等重要而有歷史價值。我代表所有珍重歷史的人們向博主表示感謝!
不必客气,有需要就行。
试了一下,挺好的,功能都实现了,不过还是要调一下样式才行。。。谢了~
关于样式,有什么欠缺的地方吗?
我是想显示出来的评论能留言板那样显示出来(像风格,嵌套布局等),还要加上属于哪篇文章的链接。我看了你的代码,本来想自己加上属于哪篇日志的,不过发觉那个表里没有直接地显示文章链接字段,应该要再写个函数才能实现了。不知博主有没意愿一试?呵呵~
这样的样式只能使用者自己写了,这里只输出泛化的评论。
如果你想同时显示文章标题链接等,你可以安装插件:
wp-recentcomments
调用它的函数wp_recentcomments()
嗯,感谢。我突然想到WP KIT CN插件里面的评论函数~呵呵
超强,这个功能还是不错的,有人就是希望看看这个站点的所有评论。
不知能否套在主循环中,实现分页功能。
不可以!
您好,謝謝您的教學,我成功的創建了一個「最近兩個月留言」的page,http://prattflora.com/mfastudy/?page_id=16926,但是裡面的link都不正確,不知是哪裡出了錯誤呢?對了,我尋找「顯示本站所有留言」的教學很久了,過去都是使用一個外掛叫做comment-status (由chweng寫的,搜尋關鍵字是Comments Status 計算評論總數),但自從升級之後,該外掛就無法使用了,不知您是否看得出來該外掛裡面哪裡出現錯誤了呢?要是能有人把這個外掛修好,我就要流淚了!
我不知道什么link不正确。
最近比较忙,暂时没空去研究插件哪里有错。
hi, Ludou:我在對方的站上看到有網友說是Global那邊的問題,所以已經自己修改好了呢!還是謝謝您喔!
这个很棒,我弄出来了,但其实我更想要 热门文章的一的排行列表页面
看了很多,都没发实现的,很郁闷啊
Ludou ,能帮解决一下吗?
不知道什么样的叫热门?
评论最多:
http://www.ludou.org/popular-posts-by-comment-count-sql-query-in-wordpress.html
点击最多(WP-PostViews):
<?php if (function_exists('get_most_viewed')): ?>
<ul>
<?php get_most_viewed(); ?>
</ul>
<?php endif; ?>
对 就是点击最多 的 已经调出来了,但我想放在单独页面 调100个怎么调出数量呢?
http://www.ludou.org/wordpress-create-tags-page.html
第4步、将<?php the_content(); ?> 改成:
<?php if (function_exists('get_most_viewed')): ?>
<ul>
<?php get_most_viewed('post', 100); ?>
</ul>
<?php endif; ?>
谢谢你 Ludou 成功了!呵呵,你太帅了!
在这里学到了很多东西啊.
在弄个评论最多100排行也和不错哦.
<?php if (function_exists('mdv_recent_comments')) { ?>
<ul>
<?php mdv_recent_comments('100'); ?>
</ul>
<?php } ?>
一百个评论,我想调评论的内容为文章的标题,弄不出来.Ludou能不能指教一下.
没有这样的功能
有,我已经调出来了。借用插件在页面调出来的.
嘿嘿
感觉很不错,目前还不需要这样的功能,做一下记号,呵呵