所以我在 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。
我仍然有一个问题,比如说如果我有一个自定义分类法“梅赛德斯”,它会拉出所有与“梅赛德斯”相关的结果,但如果我输入“sadfasdf”,它会默认为 index.php 一些原因。