Wordpress WP_Query订单无法更改为ASC

时间:2015-04-17 21:24:55

标签: php wordpress

我有简单的查询。

$args = array(
    'post_type' => array($type),
    'nopaging ' => true,
    'posts_per_page' => $n,
    'offset' => $offset,
    'orderby' => $orderBy,
    'order' => $order
);

$postQuery = new WP_query($args);

$ order来自ASC或DESC,但它始终是ASC。我找到了拒绝的地方,但无法理解原因。在第2383行的wp-includes / query.php(WP 4.1.1)中,有一个操作会破坏我的查询参数。 (或者我理解将它们部分地设置为全局,但部分地作为我的自定义,因为我的帖子类型没有改变)

    var_dump($this->query_vars['order']); // here it DESC (as i want)

    do_action_ref_array( 'pre_get_posts', array( &$this ) );

    var_dump($this->query_vars['order']); // And here it rejeced to ASC

为什么会这样?

1 个答案:

答案 0 :(得分:0)

知道了, "简单的自定义发布订单"插件添加了它自己的过滤器,打破了我传递的WP_query args。刚尝试搜索" pre_get_posts"钩子,并发现插件广告它自己的逻辑,已关闭它,一切正常。

因此,如果您遇到类似问题,请检查您的插件。