如何克隆全局WP_Query对象并仅更改一个参数?

时间:2016-11-23 19:22:33

标签: javascript php jquery html wordpress

我在我的Wordpress安装中添加了一个新的post_type,我想查询这些帖子并在循环中使用它们。 问题是我必须根据类别页面或标签页等手动构建参数。

有没有办法重用已经可用的全局WP_Query对象,修改参数post_type并运行查询?

这是我想要避免的:

$query = array(
  'post_type' => 'vehicle',
);

if( is_category() ){
  $query['category_name'] = get_query_var('category_name')
}

if( is_category() ){
  $query['category_name'] = get_query_var('category_name')
}

if( is_tag() ){
  $query['tag'] = get_query_var('tag')
}


// ... and so on

$loop = new WP_Query($query);

我不想使用pre_get_posts方法,因为这样做会改变全局查询,该查询用于网站的其余部分。

1 个答案:

答案 0 :(得分:0)

我已经修好了这个:

$query = $wp_query->query_vars;

$query['post_type'] = 'vehicle';

$loop = new WP_Query($query);

我不知道这是否正确,但对我有用。