如何在没有过滤器的情况下运行 Wordpress wp_query?

问题描述

我有一个自定义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 应该在应用过滤器时撤消,但我一定是做错了什么。我还检查了 EDD 生成pre_get_posts(只有一个)并将它们关闭,但这也不起作用。

如何在没有排除的情况下获得实际的完整结果?我乐于接受各种想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)