2012-10-03 3 views
0

Wordpress에서 add_rewrite_rule() 함수를 사용하여 변수에 적절한 값을 할당하는 데 문제가 있습니다. 내 목표는 다음과 같은 URL을 갖는 것입니다 : www.mywebsite.com/catalog/category1/category2/item-slug. 3 개의 변수가있는 Wordpress add_rewrite_rule

add_filter('query_vars', 'query_vars_new'); 
function query_vars_new($query_vars){ 
    $query_vars[]='category1'; 
    $query_vars[]='category2'; 
    $query_vars[]='catalog_item'; 
    return $query_vars; 
} 

add_action('init', 'rewrite_init'); 
function rewrite_init(){ 
    add_rewrite_rule('catalog(/([^/]+))?(/([^/]+))?/?','index.php?page_id=94&category1=$matches[1]&category2=$matches[2]&catalog_item=$matches[3]','top'); 
} 

그래서 목표는 세 개의 변수 $category1, $category2 및 해당 URL 세그먼트의 값으로 $catalog_item을하는 것입니다 :

다음은 functions.php 파일에서 내 코드입니다. 그러나 이것을 테스트 할 때 처음 두 변수는 같은 값으로 설정됩니다.

$category1="clothes"; 
$category2="shirts"; 
$catalog_item="polo-shirt"; 

을하지만 그 대신 내가 얻을 :

예를 들어, www.mywebsite.com/catalog/clothes/shirts/polo-shirt 반환해야

$category1="/clothes"; 
$category2="clothes"; 
$catalog_item="/polo-shirt"; 

내 add_rewrite_rule 기능에 문제가 있어야합니다,하지만 난 그것을 알아낼 수 없습니다 .

답변

0

이 질문에 대한 믿을 수 없을 정도의 대답에 감사 드리며 결국 Wordpress 변수를 사용하지 않고 작동하게되었습니다. 방금 URL에 변수를 허용하도록 Wordpress를 구성한 다음 PHP를 사용하여 URL을 가져 와서 다른 URL 세그먼트를 가져 와서 분석했습니다. Wordpress 방식 만큼은 아니지만 적어도 작동합니다.

+0

다음 번에 http://wordpress.stackexchange.com/을 방문하십시오. – patrickzdb

관련 문제