0

pre_get_posts投稿の親で検索結果をフィルタリングするために、functions.php にフックを追加しました。

 $query->set( 'post_parent', $_GET['post_parent'] );

これは、その投稿の親 ID 値が明示的に設定されている投稿で問題なく機能します。ただし、いわば「子投稿の子投稿」を返すわけではありません。たとえば、親 ID が 262 で、投稿 280 の投稿の親が 262 の場合、検索結果に表示されます。ただし、投稿の親 ID が 280 の投稿は、技術的には 262 の投稿の親に含まれていても表示されません。これが理にかなっていることを願っています。

投稿の親のすべての子投稿、子投稿の子投稿をすべて返す適切な方法は何ですか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたの目標を正しく理解したかどうかは正確にはわかりません。しかし、通常、Wordpress はget_post_ancestors()投稿のすべての親を最高レベルまで取得することを提案します (262 の子は 262 と 280 をリストします)。

したがって、次のようなものを使用できます

<?php
    $parents = get_post_ancestors($_GET['post_parent']);
    $query->set('post_parent__in', $parents);
?>
于 2013-10-29T14:36:42.210 に答える