3

そのため、WordPressの書き換えルールに問題があります。

そこにないカスタムクエリを入力すると、index.phpに戻りますが、アーカイブ(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 に答える