WordPress树形层级输出文章评论方法-WordPress开发教程
前几天做主题时遇到这个问题,由于WordPress自带的方法生成的评论列表太过于僵硬,我们有时候需要自定义的输出形式,官方给的函数就不够用了,这时候就需要自己做一个查询与输
前几天做主题时遇到这个问题,由于WordPress自带的方法生成的评论列表太过于僵硬,我们有时候需要自定义的输出形式,官方给的函数就不够用了,这时候就需要自己做一个查询与输出的方法。
下面是前几天做主题时用到的方法,亲测可用。本来想偷懒百度一个来用的,找了好久都没找到。只好自己写一个,分享给大家咯。
代码比较少,直接贴。
function mo_comments_list($postid) { global $wpdb; $comments = $wpdb->get_results('SELECT * FROM wp_comments WHERE comment_post_ID ='.$postid); //echo count($comments); foreach($comments as $comment){ if($comment->comment_parent==0){ getcomment_content($comment); // echo "</br>"; getchaildcomment($comments ,$comment->comment_ID,5); echo "</div>"; } } } function getcomment_content($comment){ echo '<div class="comment-item comment-'.$comment->comment_ID.'">'._get_the_avatar($user_id=$comment->user_id, $user_email=$comment->comment_author_email).'<div class="text">'.$comment->comment_content.'</div>'; echo '<footer><span class="user">'.$comment->comment_author.'</span><time>'.$comment->comment_date.'</time><a href="JavaScript:;" class="reply" etap="comment_reply" data-id="'.$comment->comment_ID.'">回复</a></footer>'; } function getchaildcomment($comments,$comment_id,$limit){ if($limit>0){ foreach($comments as $comment){ if($comment->comment_parent==$comment_id){ echo '<div class="comment-item comment-'.$comment->comment_ID.'">'._get_the_avatar($user_id=$comment->user_id, $user_email=$comment->comment_author_email).'<div class="text">'.$comment->comment_content.'</div>'; echo '<footer><span class="user">'.$comment->comment_author.'</span><time>'.$comment->comment_date.'</time><a href="javascript:;" class="reply" etap="comment_reply" data-id="'.$comment->comment_ID.'">回复</a></footer>'; getchaildcomment($comments,$comment->comment_ID,$limit-1); echo '</div>'; } } }else{ } }
将上述代码复制到主题目录下的function.php文件中,即可在WordPress目录文件中调用。
还是说明一下这个方法的原理。
首先使用了一个数据库查询,查询了评论数据表wp_comments里的评论数据。然后取出对应文章id的所有评论,再对所有评论进行遍历。在遍历所有评论时,使用到了一个递归函数输出评论下的回复。
使用方法:
直接调用mo_comments_list方法,传入文章id即可。方法getcomment_content是用来获取父级评论的方法,需要传入数据库查询内容。在里面调用了getchaildcomment方法获取评论回复,该方法需要三个参数,第一个是数据库查询内容,第二个是父级评论id,第三个是需要递归多少次,我这里只递归了5次,如果你的评论嵌套的比较多,可以自定义这里的5.
原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121644

服务项目 | 服务内容 | 收费标准(元) |
---|---|---|
开发定制 | WordPress主题/插件开发定制 | (以最终需求为准) |
主题/插件汉化 | 汉化团队WordPress主题/插件,翻译率95% | (以标的主题/插件的句子数量为准) |
服务器环境配置 | 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 | 100元/次 |
网站托管 | 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 | 标配套餐:1000元/年/站点 高配套餐:联系客服获取 |
网站加速优化 | 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) | 500元/次(仅站内优化200元/次) |
主题配置 | 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 | 英文主题安装 60元/次 汉化主题安装 30元/次 |
HTTPS配置 | HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 | 100元/次 |
网站搬家 | 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 | 标准收费:500元/次 若网站数据量大,需协商 |
网站运维 | 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 | 标准收费:2000元/年 IP 5000以上需协商 |