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

Php Wordpress正则表达式匹配前缀/类别1/类别2/页码,php,regex,wordpress,rewrite,Php,Regex,Wordpress,Rewrite,我已经写了一个Wordpress插件,它查看一个品牌名称列表,并按顺序列出以a、B、C、D开头的字母列表 当用户单击任何给定字母时,它会列出以该字母开头的品牌名称,例如Abus、ABike、Animal等 这样,用户就可以点击一个品牌名称,并在几个页面上显示该品牌的商品列表 因此,url结构将是: 等 因为这是在Wordpress中,我试图了解需要加入add_rewrite_规则的正则表达式。通过执行以下操作,我可以使其与第一部分(上面示例中的/A/或/B/)匹配: add_rewrite_

我已经写了一个Wordpress插件,它查看一个品牌名称列表,并按顺序列出以a、B、C、D开头的字母列表

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

这样,用户就可以点击一个品牌名称,并在几个页面上显示该品牌的商品列表

因此,url结构将是:

因为这是在Wordpress中,我试图了解需要加入add_rewrite_规则的正则表达式。通过执行以下操作,我可以使其与第一部分(上面示例中的/A/或/B/)匹配:

add_rewrite_rule('brands/?([^/]*)', 'index.php?pagename=brands&brand_letter=$matches[1]&brand_name=$matches[2]&page=$matches[3]
但我无法让它与品牌名称本身或页码匹配。请注意,品牌名称和编号并不总是在url中。格式为:

/品牌{always}/品牌字母{always}/品牌名称{有时}/页码{偶尔}

有人能帮我吗?

将您的正则表达式更改为:

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

太棒了,谢谢你,真是太棒了。3个小时前我应该在这里问的:-)很乐意帮忙;单击复选标记即可接受答案;)欢迎来到SO。哎呀!现在接受了。我肯定会回来的。我正在与Wordpress和正则表达式作斗争。而且在未来的一段时间内都会如此!