(修改后的答案)
让我们看看重写规则的问题传递给的第一个参数add_rewrite_rule()
(这是正则表达式模式)不应以home_url()
或任何输出网站URL的功能。所以这是错误的:
home_url() . \'/car/([^/]*)/([^/]*)/?\'
因为生成的正则表达式(RegEx)模式将是:
http://example.com/car/([^/]*)/([^/]*)/?
这将
never be matched, 因为请求(请参阅
WP::$request
) 从不以网站URL开头。甚至都不是从
/
.
是&model=$matches[1]
a部分输入错误?
index.php?taxonomy=car&term=$matches[1]&model=$matches[1]&trim=$matches[2]
现在修复
home_url() . \'/car/([^/]*)/([^/]*)/?\'
应为(无尾随
/
开始时):
\'^car/([^/]*)/([^/]*)/?\'
在
index.php?taxonomy=car&term=$matches[1]&model=$matches[1]&trim=$matches[2]
应该没有
&model=$matches[1]
:
index.php?taxonomy=car&term=$matches[1]&trim=$matches[2]
然而,即使
&model=$matches[1]
, 在我的情况下,这条规则实际上起了作用。
我不确定您是否已经在代码中的某个地方添加了此参数,但我会添加它,以便在URL中获取“trim”参数的值:
add_rewrite_tag( \'%trim%\', \'([^/]+)\' );
你应该在
add_rewrite_rule()
线条,要获取“trim”值,可以使用
get_query_var( \'trim\' )
.