过滤搜索结果中帖子父ID内的所有Wordpress子帖子


Filter all Wordpress child posts within post parent id in search results

我为函数添加了一个钩子.php使用 pre_get_posts 按帖子父级过滤搜索结果:

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

这适用于明确设置了该帖子父 ID 值的帖子。但是,可以这么说,它并没有返回"子帖子的子帖子"。因此,例如,如果父 id 为 262,而 post 280 的帖子父项为 262,它将显示在搜索结果中。但是,帖子父级 ID 为 280 的帖子将不会显示,即使从技术上讲,它们包含在 262 帖子父级中。希望这是有道理的。

什么是返回帖子父级的所有子帖子,子帖子的子帖子,一直向下的正确方法?

任何帮助,不胜感激。

我不确定我是否正确理解了你的目标。但通常Wordpress提供get_post_ancestors(),以检索帖子的所有父级到最高级别(262的孩子将列出262和280)。

所以你可以使用类似的东西

<?php
    $parents = get_post_ancestors($_GET['post_parent']);
    $query->set('post_parent__in', $parents);
?>