WordPress归档重写规则

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。
然而,我还有一个问题,如果我有一个自定义分类“Mercedes”,那么它会拉出所有与“Mercedes”相关的结果,但是如果我输入“sadfasdf”,它会默认跳转到index.php页面。
1个回答

0

您可以通过以下方式添加查询变量...

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

add_filter('query_vars', 'add_my_query_var');

filter函数接收一个现有查询变量的数组,您需要将该数组附加并返回它。


糟糕,我在我的代码中犯了一个错误。我正在输入它。然而,我仍然有一个问题,比如说如果我有一个自定义分类法“梅赛德斯”,它会拉出所有与“梅赛德斯”相关的结果,但如果我输入“sadfasdf”,它会因某种原因默认为index.php。 - WakanaS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接