WordPress创建显示所有评论的页面
日期:
标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务: 点此联系我
文章目录
应网友hongwang777的请求,他需要一个显示他的WordPress博客所有文章评论的页面,同时又想按照月份来显示。我翻阅了一下WordPress的文档,发现函数 get_comments()恰好可以解决这个问题,下面具体实现方法。
实现方法:
1、在当前主题目录下新建一个php文件,命名为commets-page.php,然后将page.php中的所有代码复制到commets-page.php中
2、删除commets-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容
3、将第一个 <?php 改成
<?php
/*
Template Name: All comments
*/
4、将 the_content(); 改成以下代码:
/**
* 名称: WordPress创建显示所有评论的页面
* 作者:露兜
* 博客:https://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、评论列表页创建成功!
-- 完 --
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-list-all-comments.html
ludou高手,我这种菜鸟不敢乱改代码,前一个站改代码弄出一些莫一起秒的后遗症。
@如风物语 你希望自己永远都是菜鸟?
另感谢您在wp上对我的回复~
很实用的知识,学习了!
支持一下,看来我也要好好学学PHP了
集中精力做一件事,人不需要什么都专长。
这个有什么实际的用处吗?
@棺材中的尘埃 这个我不知道,去问问那位网友吧。也许他只是给我留言耍耍我而已,自上次留言就没有给我回复过。
@Ludou 我已经折腾上了,不过想知道分页的话,应该怎么办
谢谢楼主奉献,很好的文章,值得学习
这个页面的没什么存在的意义。纯技术文章,拜读了……
这个功能不错啊,晚上回家试试。
萬分感謝博主的付出!
這個功能對於我的博客非常重要。因爲涉及到歷史的真實。所以評論同文章同等重要而有歷史價值。我代表所有珍重歷史的人們向博主表示感謝!
@hongwang777 不必客气,有需要就行。
试了一下,挺好的,功能都实现了,不过还是要调一下样式才行。。。谢了~
@winky 关于样式,有什么欠缺的地方吗?
@Ludou 我是想显示出来的评论能留言板那样显示出来(像风格,嵌套布局等),还要加上属于哪篇文章的链接。我看了你的代码,本来想自己加上属于哪篇日志的,不过发觉那个表里没有直接地显示文章链接字段,应该要再写个函数才能实现了。不知博主有没意愿一试?呵呵~
@winky 这样的样式只能使用者自己写了,这里只输出泛化的评论。
如果你想同时显示文章标题链接等,你可以安装插件:
wp-recentcomments
调用它的函数wp_recentcomments()
@Ludou 嗯,感谢。我突然想到WP KIT CN插件里面的评论函数~呵呵
超强,这个功能还是不错的,有人就是希望看看这个站点的所有评论。
不知能否套在主循环中,实现分页功能。
@Jiefeng 不可以!
您好,謝謝您的教學,我成功的創建了一個「最近兩個月留言」的page,http://prattflora.com/mfastudy/?page_id=16926,但是裡面的link都不正確,不知是哪裡出了錯誤呢?對了,我尋找「顯示本站所有留言」的教學很久了,過去都是使用一個外掛叫做comment-status (由chweng寫的,搜尋關鍵字是Comments Status 計算評論總數),但自從升級之後,該外掛就無法使用了,不知您是否看得出來該外掛裡面哪裡出現錯誤了呢?要是能有人把這個外掛修好,我就要流淚了!
@阿福 我不知道什么link不正确。
最近比较忙,暂时没空去研究插件哪里有错。
@Ludou hi, Ludou:我在對方的站上看到有網友說是Global那邊的問題,所以已經自己修改好了呢!還是謝謝您喔!
这个很棒,我弄出来了,但其实我更想要 热门文章的一的排行列表页面
看了很多,都没发实现的,很郁闷啊
Ludou ,能帮解决一下吗?
@feiyang 不知道什么样的叫热门?
评论最多:
https://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; ?>
@Ludou 对 就是点击最多 的 已经调出来了,但我想放在单独页面 调100个怎么调出数量呢?
@feiyang https://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 谢谢你 Ludou 成功了!呵呵,你太帅了!
在这里学到了很多东西啊.
在弄个评论最多100排行也和不错哦.
@feiyang <?php if (function_exists('mdv_recent_comments')) { ?>
<ul>
<?php mdv_recent_comments('100'); ?>
</ul>
<?php } ?>
一百个评论,我想调评论的内容为文章的标题,弄不出来.Ludou能不能指教一下.
@feiyang 没有这样的功能
有,我已经调出来了。借用插件在页面调出来的.
嘿嘿
感觉很不错,目前还不需要这样的功能,做一下记号,呵呵
the_content(); 没有找到这个 那一大段代码不知道该加在哪儿……
@salld 如果你用的是较新的主题,可能在loop-page.php中,你可以讲该文件中的所有代码复制,并替换commets-page.php中的
<?php get_template_part( 'loop', 'page' ); ?>
你在commets-page.php中搜索get_template_part即可找到这段代码。
@salld 替换完之后,你查找the_content即可。
我想输出的所有评论样式与格式,用的是默认的模版,就好比调用出来的内容就直接输出你页面这个评论,这个怎么操作?
谢谢
@Kelvin 使用函数comment_form:
http://codex.wordpress.org/Function_Reference/comment_form
额,没看明白,能不能再提示的深点
@Kelvin 可以参考wordpress自带那几款主题的代码
这个可以分页么?
请问博主 可以实现用二级域名做评论页面嘛?
请问大神,WordPress评论表单中可以添加下拉框和复选框吗?
@joffrey 可以
@露兜 可以发我一份教程吗,谢谢啊
@露兜 3539271266@qq.com
你好,我想问一下,我用的ElementorPro模板,自定义了一个SingleProduct页面,我要怎么样在我的商品详情页上加入商品的评价