私はWordPressの設定ページにあるオプションを複製しようとしています。
[x] 1ページに(5))トップレベルのコメントがあり、デフォルトで((1))ページが表示されているページにコメントを分割する
今、私は以下のコメントクエリを持っています、しかしそれはまた回答を数えて、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
- コメントに返信3
コメント4
コメント5
- コメントに返信5
を更新しました
hierarchical
パラメーターは、コメントの結果にコメントの子孫を含めるかどうかを制御します。
インラインドキュメントから 我々はそれが以下の値を受け入れることを持っています:
'threaded'
はツリーを返し、各コメントの子はWP_Comment
オブジェクトのchildren
プロパティに格納されます。'flat'
は、見つかったコメントとその子のフラット配列を返します。- 子孫を除外する場合は
false
。
それはまた言う
$fields
が 'ids'または 'counts'の場合、パラメーターは無視されます(false
に強制されます)。
'threaded'
と'flat'
オプションは両方とも WP_Comment_Query::fill_descendants()
メソッドを使用します。
各子コメントに対して別々に
get_children()
を呼び出すのではなく、一致したすべてのトップレベルコメントの子孫ツリーを取得するために1セットのクエリを実行します。
しかしthreadオプションには 追加スニペット があります。/ /はWP_Comment
オブジェクトのadd_child()
メソッドを使ってchildren
プロパティを構築します。
@Swenがコメントで述べたように、'threaded'
オプションを使うべきです。
true
の値は実際には'flat'
オプションと同じものになります。