因此,第一个解决方案可以使用add_rewrite_rules()
. 第一个原始逻辑应该类似于:
1-获取所需的术语段塞,保存在var中,例如$terms_string
; $terms\\u string应该是管道分离段塞的列表,适用于regexp,如“type1 | type2”等。。仅包含有效(允许)值。假设使用get\\u terms()获取所有slug。。
2-添加如下自定义重写规则:
function add_rewrite_rules() {
add_rewrite_rule(
\'^products/(\' . $terms_string . \')/?$\', //matches things like /products/type1
\'index.php?product_category=$matches[1]\', //the real query that will be executed upon matching requests
\'top\'
);
}
add_action( \'init\', \'add_rewrite_rules\');
它起作用了。它将正确显示分类法存档。在现实世界中,构建一个一致的规则集实际上要复杂得多,但这就是方法。这里要粘贴的代码太多了,但我刚刚创建了一组类似api的复杂规则,还包括使用polylang进行语言管理。因此,如果有人有同样的任务,就去改写规则。