gpt4 book ai didi

regex - WordPress - 用多个参数重写规则

转载 作者:行者123 更新时间:2023-12-01 07:34:28 29 4
gpt4 key购买 nike

我正在设置一个通常会接受两个查询字符串参数的 WordPress 页面。我们的主机更喜欢使用重写规则而不是查询字符串,所以我必须采用这种方法。

所以我通常会这样做:

domain.com/animal-page.php?animal=dog&color=brown

我必须这样做:

domain.com/animal-page/animal/dog/color/brown

我遇到的问题是第二个查询字符串参数是可选的。

像这样的重写规则不起作用:

add_rewrite_rule(
'([\-\w+]*)/animal/([\w+]*)/color/([\w+]*)',
'index.php?pagename=$matches[1]&animal=$matches[2]&color=$matches[3]',
'top'
);

...因为如果颜色参数不在 URL 中(这是可能的),那么 Regex 就会失败。

我还尝试在 Regex 中将查询参数(颜色)和值(棕色)设为可选,但它仍然不起作用:
add_rewrite_rule( 
'([\-\w+]*)/animal/([\w+]*)(\/color\/?)([\w+]*)',
'index.php?pagename=$matches[1]animal=$matches[2]&$matches[3]=$matches[4]',
'top'
)

我的问题是:有没有办法让第二个查询参数可选?如果“颜色”参数不在 URL 中,我希望页面做出适当的 react 。

谢谢,

最佳答案

在这种情况下,您需要制定两个单独的规则:

add_rewrite_rule(
'([\-\w+]*)/animal/([\w+]*)/?$',
'index.php?pagename=$matches[1]&animal=$matches[2]',
'top'
);


add_rewrite_rule(
'([\-\w+]*)/animal/([\w+]*)/color/([\w+]*)',
'index.php?pagename=$matches[1]&animal=$matches[2]&color=$matches[3]',
'top'
);

关于regex - WordPress - 用多个参数重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712428/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com