2012-09-04 35 views
1

我已經寫了一個Wordpress插件,它查看品牌名稱列表並轉儲它們以字母開頭的有序列表,例如, A B C D ...Wordpress正則表達式匹配前綴/類別1 /類別2 /頁碼

當用戶點擊任何給定的字母時,它列出以該字母開頭的品牌名稱,例如, Abus,ABike,Animal等

然後讓用戶點擊一個品牌名稱,並顯示一個品牌名單分佈在多個頁面上。

的URL結構將因此會:

http://www.domain.com/brands/A/Abus/1

http://www.domain.com/brands/B/Bontrager/1

因爲這是在WordPress的努力讓我的頭左右,需要進入add_rewrite_rule正則表達式。我可以得到它的第一部分匹配(在/ A /或/ B /在上面的示例)通過執行此操作:

add_rewrite_rule('brands/?([^/]*)', 'index.php?pagename=brands&brand_letter=$matches[1]&brand_name=$matches[2]&page=$matches[3] 

,但我不能讓它匹配的品牌名稱本身也不頁面數。請注意,品牌名稱和編號並不總是在網址中。格式爲:

/品牌{}始終/ brand_letter {}始終/ BRAND_NAME {}有時/頁碼{}偶爾

有人可以幫我嗎?

回答

1

您正則表達式更改爲:

brands/(\w)(?:/([^/]+)(?:/(\d+))?)? 
     | | |  | |  | | 
     | | |  | |  | | 
     | +---|------|---|-----|-Optional brand name and page number. 
     |  |  | |  | 
     |  |  +---|-----Optional page number. 
     |  |   | 
     |  |   $3, the page number. 
     |  | 
     |  $2, the brand name. 
     | 
     $1, the brand letter. 
+0

+1爲ASCII箭頭 – rjz

+0

太棒了 - 那工作一種享受,謝謝。我應該在3小時前問這裏:-) – user1647208

+0

很高興幫助;隨時通過點擊複選標記來接受答案;)並歡迎來到SO。 –