aar*_*oot 2 php wordpress wp-query
我正在尝试使用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 );
Run Code Online (Sandbox Code Playgroud)
我要在此处检索的页面应与我提供的ID数组中的ID相匹配。数组和其他参数看起来不错,因为当我使用get_posts而不是时确实得到了结果WP_Query。这是怎么了?
小智 6
我的有根据的猜测是,您正在执行的主题中某个位置的过滤器编写得很差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()检查仅将主查询作为目标
| 归档时间: |
|
| 查看次数: |
2600 次 |
| 最近记录: |