让代码更简单

WordPress自定义文章类型文章中输出评论

重要:本文最后更新于2021-06-29 21:51:40,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

前面讲过使用WordPress自定义文章类型实现问答效果,最近在复制某站的问答功能时遇到一个问题,自定义文章类型的评论输出异常,由于 wp_list_comment 函数中无法筛选 post_type 参数,所以直接使用它是取不到自定义文章类型的文章评论数据的,解决办法有两种,要么数据库查表,要么使用wordpress的模板搭配 wp_list_comment 函数解决。

wordpress评论函数

wordpress评论函数

查表方式

由于评论数据都在 wp_comments 这张数据表中,所以简单的mysql语句就能取得我没想要的数据,但是,评论是分级的,在使用这种方式输出评论时就需要大家的逻辑足够清晰。下面举个例子,简单查询文章所以评论数据的MySQL语句如下:

复制
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' );

这种方式不适合我这种懒人,于是我找到了另外的一种方式。

利用模板文件

首先创建一个名为 question_answer_comments.php 的评论模板文件,然后使用 comments_template('/question_answer_comments.php', true); 函数引用它,这时评论模板文件中就可以正常使用wp_list_comments 函数获取评论数据了。建议配合使用 Walker_Comment 类控制评论输出的样式,简单好用!

如果查阅一下源码应该能发现是哪里出了问题,但是我比较懒,而且这样还能让程序结构更清晰,所以就这样吧,不找原因了,程序跑起来了,就不要动它!

感觉很棒!可以赞赏支持我哟~

6 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐