首页 >

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 "
";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次.


  • 暂无相关文章