我在WordPress中遇到了重写规则的问题。
当我输入一个不存在的自定义查询时,它会回退到index.php页面,但我不希望这样,因为我正在处理archive-(page).php中的查询变量。
<?php
add_filter('query_vars', 'cat_query_vars');
function cat_query_vars($qvars) {
$qvars[] = 'a_type';
return $qvars;
}
add_action('init', 'create_type_rewrite');
function create_type_rewrite() {
add_rewrite_rule('^atype/([^/]+)/?', 'index.php?post_type=cars&a_type=$matches[1]', 'top');
}
?>
如果我输入“Mercedes”,并且该信息已经存储在系统中,那么它将跳转到archive-cars.php页面,并使用get_posts($args)函数,其中'a_type' => $wp_query->query_vars['a_type'];我需要注意全局变量$wp_query。
然而,我还有一个问题,如果我有一个自定义分类“Mercedes”,那么它会拉出所有与“Mercedes”相关的结果,但是如果我输入“sadfasdf”,它会默认跳转到index.php页面。