你错过了WP$matches[1]
匹配的正则表达式的语法。
我想你想要/?
最后也是。
我发现最简单的测试方法是暂时flush_rewrite_rules()
在测试过程中,您无需执行任何其他操作。我有一个类似的正则表达式/foo/catname/
到index.php?taxonomy=category&term=catname
, 这里是我用来开发一个干净的测试WP安装-这对我来说很好。
function foobar() {
add_rewrite_rule(\'^foo/([^/]+)/?\', \'index.php?taxonomy=category&term=$matches[1]\', \'top\');
flush_rewrite_rules();
}
add_action(\'init\', \'foobar\', 10, 0);
因此,您可能想尝试:
add_rewrite_rule(\'test-sale-yacht/([^/]+)/?\', \'index.php?name=test-sale-yacht&yacht_name_id=$matches[1]\', \'top\');
编辑:根据@TomJ Nowell的评论,flush\\u rewrite\\u rules是一个昂贵的调用-我建议只在开发人员或流量非常低的网站上执行此操作。