Posted on 05/02/2023 | by liu
前几天做主题的时候遇到了这个问题,因为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 "";getchaildcomment($comments ,$comment->comment_ID,5); echo " ";} } }function getcomment_content($comment){ echo 'comment_ID.'">'._get_the_avatar($user_id=$comment->user_id, $user_email=$comment->comment_author_email).'
'.$comment->comment_content.'
';echo '
'; }function getchaildcomment($comments,$comment_id,$limit){if($limit>0){foreach($comments as $comment){if($comment->comment_parent==$comment_id){echo '
comment_ID.'">'._get_the_avatar($user_id=$comment->user_id, $user_email=$comment->comment_author_email).'
'.$comment->comment_content.'
';echo '
';getchaildcomment($comments,$comment->comment_ID,$limit-1);echo '
';} }}else{ }}
将上述代码复制到主题目录function.php可以在文件中WordPress调用目录文件。
说明这种方法的原理。
首先,使用数据库查询评论数据表wp_comments评论数据。然后取出相应的文章id所有评论,然后遍历所有评论。在所有遍历评论中,使用递归函数输出评论下的回复。
使用方法:
直接调用mo_comments_list方法,传入文章id即可。方法getcomment_content需要输入数据库查询内容才能获得父级评论。在里面调用getchaildcomment该方法需要三个参数才能获得评论回复,一是数据库查询内容,二是父级评论id,第三个是需要递归多少次。我在这里只递归五次。如果你的评论嵌套得更多,你可以在这里定制5次.
暂无相关文章
文章导航