gpt4 book ai didi

php - WP_Query 不返回任何结果

转载 作者:行者123 更新时间:2023-12-02 08:28:01 30 4
gpt4 key购买 nike

我正在尝试使用 WP_Query 和一些参数在 wordpress 中检索一些页面:

$args = array(
'post_type' => 'posttype',
'posts_per_page' => 24,
'post__in' => $store_ids,
'paged' => $paged,
'post_status' => 'publish',
);

$the_query = new WP_Query( $args );

我在这里尝试检索的页面应该与我给它的 ID 数组中的一个 ID 相匹配。数组和其他参数看起来不错,因为当我使用 get_posts 而不是 WP_Query 时确实得到了结果。这里出了什么问题?

最佳答案

我有根据的猜测是,您的主题中某​​处有一个编写不当的过滤器正在作用于 WP_Query,它很可能是操作 pre_get_posts

get_posts 使用 WP_Query。唯一的区别是 get_posts 默认将以下两个参数传递给 WP_Query:

  • 'no_found_rows' => true 分页“失败”,这就是为什么你不能分页 get_posts

  • 'suppress_filters' =>true 这是重要的一个,它的作用是阻止过滤器更改查询。所以 pre_get_posts 和内置的 posts_* 过滤器不能用来改变 get_posts。这就是为什么在您的情况下您使用 get_posts 获得帖子而使用 WP_Query

  • 没有帖子

此处的肮脏修复是将 'suppress_filters' => true 添加到 WP_Query 中的查询参数。正确的解决方法是寻找改变查询的过滤器。正如我所说,很可能 pre_get_posts 您没有使用 is_main_query() 检查来仅针对主查询

关于php - WP_Query 不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213495/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com