3

所以我在 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 一些原因。

4

1 回答 1

0

您添加这样的查询变量...

function add_my_query_var($vars) {
    $vars[] = 'my_var';
    return $vars;
}

add_filter('query_vars', 'add_my_query_var');

过滤器函数传递了一个现有查询变量的数组,您需要附加该数组然后返回它。

于 2013-02-08T18:52:44.857 回答