我有一个自定义 Wordpress 插件,它搜索自定义类型的所有帖子下载,我需要查询才能找到它们:
$args = array(
'post_type' => 'download',
'post_status' => 'publish',
'posts_per_page' => 10,
'suppress_filters' => true,
'paged' => $request['id'],
'suppress_filters' => true
);
$posts = new WP_Query( $args );
不幸的是,当我运行查询时,插件 Easy Digital Downloads 覆盖了我的查询以包含 post__not_in ,其中排除了我实际需要的一些结果:
"post__not_in": [
"1241",
"1343",
"1452",
"1467",
"1247"
]
我可以看到生成的 SQL 如下所示:
"sql_query": "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID NOT IN (1241,1343,1452,1467,1247) AND wp_posts.post_type = 'download' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 100"
我尝试停用 EDD,这使我的查询按预期工作,但我认为添加'suppress_filters' => true
应该在应用过滤器时撤消,但我一定做错了什么。我还检查了pre_get_posts
EDD 生成的(只有一个)并将它们关闭,但这也不起作用。
如何在不排除的情况下获得实际的完整结果?我对想法持开放态度。