WP_Comment_Query с 5 комментариями верхнего уровня на страницу?

Я пытаюсь воспроизвести этот параметр на странице настроек 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

  • Ответить на комментарий
  • Ответить на комментарий
  • Ответить на комментарий

Комментарий 4

Комментарий 5

  • Ответить на комментарий 5

обновленный

hierarchical параметр определяет, включать ли комментарии потомков в результаты комментариев.

Из встроенных документов мы имеем, что он принимает следующие значения:

  • 'threaded' возвращает дерево, причем дети каждого комментария хранятся в свойстве WP_Comment объекте WP_Comment .
  • 'flat' возвращает плоский массив найденных комментариев и их детей.
  • false чтобы оставить потомков.

В нем также говорится, что

Параметр игнорируется (принудительно для false ), когда $fields является «идентификаторы» или «подсчет».

WP_Comment_Query::fill_descendants() 'threaded' и 'flat' используют метод WP_Comment_Query::fill_descendants() :

Вместо вызова get_children() отдельно для каждого дочернего комментария мы делаем один набор запросов для извлечения деревьев потомков для всех совпадающих комментариев верхнего уровня.

но в потоковом варианте есть дополнительный фрагмент, который использует метод add_child() объекта WP_Comment для создания свойства children .


Как отметил @Swen в комментариях, следует использовать опцию 'threaded' .

Похоже, что true значение фактически дало бы то же самое, что и 'flat' вариант.