按正则表达式匹配前缀/类别1/类别2/页码


Wordpress regex to match prefix/category 1/category 2/page number

我写了一个Wordpress插件,它查看品牌名称列表,并转储以a B C D…开头的字母的有序列表。。。。

当用户点击任何给定的字母时,它会列出以该字母开头的品牌名称,例如Abus、ABike、Animal等

然后,用户点击一个品牌名称,并在几个页面上显示该品牌的商品列表。

因此url结构为:

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

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

etc

因为这是在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]

但我无法使它与品牌名称本身或页码相匹配。请注意,品牌名称和编号并不总是在url中。格式为:

/brands{always}/brand_letter{alyst}/brand_name{有时}/页码{偶尔}

有人能帮帮我吗?

将正则表达式更改为:

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