2013-02-08 2 views
3

WordPress의 다시 쓰기 규칙에 문제가 있습니다.아카이브 용 Wordpress 다시 쓰기 규칙

거기에없는 사용자 정의 쿼리를 입력하면 아카이브 (페이지) .php의 쿼리 변수를 처리하기 때문에 index.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을로 이동, 나는 'a_type을'이 get_posts ($ 인수)를 사용합니다 => $ wp_query-> query_vars [ 'a_type'] ;. 전역 $ wp_query가 있습니다.

나는 아직도 "Mercedes"와 관련된 모든 항목에 대해 사용자 지정 분류 "Mercedes"가있는 경우에는 문제가 발생하지만 "sadfasdf"를 입력하면 색인이 기본값으로 설정됩니다 .php 어떤 이유로. 당신은 쿼리 추가

답변

0

는 그 배열을 추가하고이를 반환해야, 필터 기능은 기존 쿼리의 배열 바르 전달

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

add_filter('query_vars', 'add_my_query_var'); 

... 이런 식으로 바르.

+0

죄송합니다. 내 코드에서 실수를했습니다. 나는 그것을 타이핑하고 있었다. 아직 문제가 있습니다. "Mercedes"에 대한 맞춤 분류가있는 경우 "Mercedes"와 관련된 모든 결과가 표시되지만 "sadfasdf"를 입력하면 기본값이 index.php가됩니다. 몇 가지 이유. – WakanaS