2013-02-08 5 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

Смежные вопросы