每页有5条顶级评论的WP_COMMENT_QUERY?

时间:2017-04-26 作者:Swen

我正在尝试复制WordPress设置页面中的选项,该选项显示:

[x] 将评论拆分为每页有((5))条顶级评论的页面,默认情况下显示((第一))页

现在我有下面的评论查询,但它只显示5条评论,还包括回复。

我想要的行为是5条顶级评论,以及这些顶级评论可能包含的所有回复。我如何做到这一点?

当前代码

$args = array(
    \'post_id\' => $post_id,
    \'type\' => \'comment\',
    \'status\' => \'approve\',
    
    \'number\' => 5,
    \'hierarchical\' => \'threaded\'
);

$comments_query = new WP_Comment_Query;
$comments = $comments_query->query($args);
输出总共5条注释

评论1

回复意见1回复意见1回复意见2

评论3

期望输出

5条顶级评论及其所有回复

评论1

回复意见1回复意见1回复意见2

评论3

回复评论3回复评论3回复评论4

评论5

回复评论5

1 个回复
最合适的回答,由SO网友:birgire 整理而成

已更新

这个hierarchical 参数控制是否在注释结果中包含注释子体。

inline docs 我们确认它接受以下值:

  • \'threaded\' 返回一个树,每个注释的子级存储在children 上的属性WP_Comment 对象
  • \'flat\' 返回找到的注释及其子注释的平面数组
  • false 省略后代

    参数被忽略(强制false) 什么时候$fields 是“ids”或“counts”。

    两者\'threaded\'\'flat\' 选项使用WP_Comment_Query::fill_descendants() 方法:

    而不是打电话get_children() 我们分别对每个子注释执行一组查询,以获取所有匹配顶级注释的子树。

    但是线程化选项additional snippet 使用add_child() 的方法WP_Comment 对象来构造children 所有物

    正如@Swen在评论中提到的,应该使用\'threaded\' 选项

    看起来像true 值实际上与\'flat\' 选项