用于从自定义邮政类型存档中排除子页面的查询

时间:2021-03-10 作者:scpers0n

我有一个分级自定义帖子类型,名为;服务;。在“服务存档”页面上,我希望只显示父服务,排除子服务。

我找到了与我的问题类似的答案,即在archive services中自定义主查询。php使用以下内容:

function exclude_children( $query ) {
    if ( $query->is_main_query() && !is_admin() && $query->is_post_type_archive( \'services\' ) ) {
        $query->set( \'post_parent\', 0 );
    }
}
add_action( \'pre_get_posts\', \'exclude_children\' );
但仍会显示子服务。为什么这不管用?

1 个回复
SO网友:scpers0n

我意识到它不起作用的原因:这个函数需要位于函数中。php。

WP code reference: pre_get_posts "E;在创建查询变量对象之后但在运行实际查询之前激发"E;由于我将函数放在存档模板中,主查询已经启动,因此为时已晚。