我在我的 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);
Run Code Online (Sandbox Code Playgroud)
我不想使用该pre_get_posts
方法,因为这样做会改变用于网站其余部分的全局查询。
我已经像这样修复了它:
$query = $wp_query->query_vars;
$query['post_type'] = 'vehicle';
$loop = new WP_Query($query);
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是正确的方法,但它对我有用。