我在一个网站上工作,有两种帖子类型,共享几种分类法&;自定义字段。我开发了一个具有漂亮URL的过滤功能,目前URL的工作方式如下:
1) 我已经注册了查询变量
function return_vars( $vars ) {
$vars[] = \'tax_filters\';
$vars[] = \'field_filters\';
return $vars;
}
add_filter( \'query_vars\', \'return_vars\' );
2)我使用add\\u rewrite\\u rule()以以下方式设置了这些重写规则:add_rewrite_rule( \'my-base/filters/([^\\/]*)/([^&]*)/fields/([^&]*)/?\', \'index.php?post_type=$matches[1]&tax_filters=$matches[2]&field_filters=$matches[3]\', \'top\');
add_rewrite_rule( \'my-base/filters/([^\\/]*)/([^&]*)/?\', \'index.php?post_type=$matches[1]&tax_filters=$matches[2]\', \'top\');
以便:$matches[1]表示post类型筛选器分类法。它是一个字符串,由斜线分隔,格式为/tax1\\u name/term/tax2\\u name/term/tax3\\u name/term
(according to rule 1)
my-base/my-cpt/filters/tax1/term/tax2/term/../../fields/field1/value/fields2/value/../../
或者只过滤税款:(according to rule 2)
my-base/my-cpt/filters/tax1_name/term/tax2_name/term/../../
现在,因为我甚至需要:仅对字段进行筛选,如:我的cpt/字段/字段1/值/字段2/值/每个可能的筛选组合的分页:a)仅税务,b)仅字段c)税务和字段这将导致6个不同的规则,这些规则必须按照从最长到最短的特定顺序编写,否则后者将覆盖其他规则。
我想知道:是否有可能编写一个最终将所有这些规则结合在一起的正则表达式?
我尝试了几个regex条件语句,但我并不精通,所以我只遇到了解析错误。
感谢所有能帮忙的人!