2012-10-03 61 views
0

我無法讓Wordpress使用add_rewrite_rule()函數爲變量指定適當的值。我的目標是有一個像這樣的網址:www.mywebsite.com/catalog/category1/category2/item-slugWordpress add_rewrite_rule有3個變量

下面是從functions.php文件我的代碼:

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,並$catalog_item與對應的URL段的值。但是,當我測試這個時,前兩個變量設置爲相同的值。

例如,www.mywebsite.com/catalog/clothes/shirts/polo-shirt應該返回

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

而是我得到:

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

必須有我的add_rewrite_rule功能有點問題,但我無法弄清楚。

回答

0

感謝這個問題令人難以置信的響應,我最終只是讓它在沒有Wordpress變量的幫助下工作。我只是配置Wordpress以允許URL中的變量,然後使用PHP來獲取URL並獲取不同的URL段並分析它們。不像Wordpress方法那麼漂亮,但至少可以工作。

+0

下次在這裏問問http://wordpress.stackexchange.com/ – patrickzdb