我正在尝试为查询多个分类法的链接创建一些漂亮的URL。我使用的是“Taxonomy drill down”插件,虽然主要用途现在已集成到了内核中,但它仍然有一些有用的模板功能:)
查询多个分类法(工作)的URL示例如下:域。com/?tax1=食品和;tax2=巴
我的目标是拥有像域这样的链接。com/tax1/foo/tax2/bar-转换为上述示例
tax1/2=分类名称
foo/bar=必填项
我偶然发现Examples of WP Rewrites 但我觉得我对这些模式很差劲,比如:
$newrules[\'tax1/(.*)/tax2/(.*)/\'] = \'index.php?tax1=$matches[1]&tax2=$matches[2]\';
似乎不起作用(这只是基于Wordpress示例的整个函数的一部分)
有什么想法吗?:)
最合适的回答,由SO网友:Jan Fabry 整理而成
(.*)
匹配所有字符,因此它将“吃掉”多余的字符(这是“贪婪的”)。如果URL为/tax1/foo/tax2/bar/
, 第一个(.*)
将是foo/tax2/bar/
, 所以第二场比赛什么都没有了。
而不是(.*)
您可以使用“非贪婪”版本(.+?)
. 这将尽可能匹配,但仍要记住其余部分。您还可以使用更严格的版本([^/]+)
: 这将匹配到下一个/
- 但这不适用于嵌套类别,因此/category/fruit/banana/tag/flies/
不会在中拆分fruit/banana
和flies
正如你所料。
如果要使用重写规则,我建议您安装Rewrite analyzer plugin. 它允许您查看当前的重写规则,并使用URL查看哪些规则将匹配。