如何为产品比较页面添加重写规则?

时间:2018-08-18 作者:curious_curious

我正在尝试创建一个产品比较功能,我们可以比较三个产品,必须添加两个产品,而第三个是可选的。

正在尝试使用add\\u rewrite\\u规则为产品比较页面创建友好的URL。例如,类似于https://hostadvice.com/tools/web-hosting-comparison/godaddy-vs-hostinger/

为了让它发挥作用,以下是我迄今为止尝试的方法,我知道这不是正确的方法。

add_rewrite_rule( 
    \'compare/([^-vs-]*)(?:-vs-)([^-vs-]*)(?:-vs-)([^/]*)?/?\',
    \'index.php?pagename=compare&compare=$matches[1],$matches[2],$matches[3]\',
    \'top\'
);
所需的url结构:

实例com/compare/product1-vs-product2-vs-product3

product3 可以是可选的

如果有人能纠正我如何使regex表达式正确工作,那将非常有帮助。

非常感谢。

1 个回复
SO网友:Summer Developer

给你:

compare\\/([^-vs-]*)(?:-vs-)([^-vs-]*)(?:-vs-)?([^-vs-]*)?

记住避开反斜杠(就像我做的那样)。我还使您的查找在其内部逻辑/结构上更加一致。

我以为你不会想要第二次-vs- 如果第三个产品不存在,那么这就是为什么现在有第二个非捕获组。

下面是一个链接,其中包含regex中的答案:https://regexr.com/3u465 把事情弄清楚。如果我误解了您的要求,请告诉我。:)

结束

相关推荐

Search Results Customization

无论如何,我可以自定义我的搜索结果吗?我的意思是,举个例子,我有一个财务网页,如果有人在搜索“aapl”,我想显示所有包含“aapl”和“apple”的结果。我该怎么做?提前感谢