0

我在functions.php中添加了一个钩子,用于pre_get_posts按父级过滤搜索结果:

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

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

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

任何帮助表示赞赏。

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 回答