2013-02-08 140 views
3

所以我在使用WordPress重寫規則時遇到問題。存檔的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'); 
    } 
?> 

如果我把在「奔馳」,它是在系統中,它會去歸檔cars.php,並使用get_posts($參數),在那裏我有「a_type」 => $ wp_query-> query_vars [ 'a_type'] ;.有一個全球性的$ wp_query。

雖然我仍然有一個問題,如果我有一個自定義分類標準「梅賽德斯」在那裏它會拉起所有有關「梅賽德斯」的結果,但如果我把「sadfasdf」它將默認索引.php出於某種原因。

回答

0

您添加查詢瓦爾這樣的...

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

add_filter('query_vars', 'add_my_query_var'); 

過濾函數傳遞現有查詢的數組瓦爾,需要追加該數組,然後返回。

+0

糟糕,我在代碼中犯了一個錯誤。我正在輸入它。 雖然我仍然有一個問題,如果我有一個自定義分類「梅賽德斯」在那裏它會拉起所有有關「奔馳」的結果,但如果我把「sadfasdf」它將默認爲index.php因爲某些原因。 – WakanaS 2013-02-08 19:05:30