如何在WordPress中为一个规则中的多个分类法编写正确的ADD_REWRITE_RULE?

时间:2021-07-21 作者:Amino

我有一个位置和服务的数据库,使用WordPress制作,每个城镇/地区/县都是一个自定义分类法,我编写了一些自定义规则来清除slug,但他们(网站所有者)要求删除城镇/地区/县的单词!我试过了,但没有成功,有人能帮我吗?

以下是我的URL示例

/services/home-care/region/norfolk
/services/home-care/town/norbury

这是我的规则

 add_rewrite_rule(\'^services/(.*)/town/(.*)?\', \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_cities=$matches[2]\', \'top\');
    add_rewrite_rule(\'^services/(.*)/region/(.*)?\', \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_regions=$matches[2]\', \'top\');
    add_rewrite_rule(\'^services/(.*)/county/(.*)?\', \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_county=$matches[2]\', \'top\');
我想要

/services/home-care/norbury
/services/home-care/norfolk

但不要认为这是可能的!我有Vue。这些归档页面中的js代码根据城镇、地区或县类型获取数据。

我想可以把它们全部映射到一页中,并在该页中检查术语的类型。喜欢

 add_rewrite_rule(\'^services/(.*)/(.*)?\', \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_county=$matches[2]\', \'top\');

和taxonomy-ag\\u county页。php
$term = get_queried_object(); // Get the term 
$slug=$term->taxonomy; 
$placeType="";

switch ($slug){ 
    case \'ag_county\': $placeType="county"; break; 
    case \'ag_cities\': $placeType="city"; break; 
} 
我有一个搜索表单,可以像这样加载这些分类法:
enter image description here

1 个回复
SO网友:Amino

将URL格式更改为:

/services/home-care/COUNTY/TOWN

add_rewrite_rule(
    \'services/([^/]*)/([^/]*)/([^/]*)/?\',
    \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_cities=$matches[3]\',
    \'top\' );


add_rewrite_rule(
    \'services/([^/]*)/([^/]*)/?\',
    \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]&ag_county=$matches[2]\',
    \'top\' );


add_rewrite_rule(
    \'services/([^/]*)/?\',
    \'index.php?post_type="ag_location"&ag_primary_inspection_cat=$matches[1]\',
    \'top\' );
基于this solution

相关推荐

Wordpress Permalinks

我在最近建立的网站上使用Wordpress Sydney主题。如果我将永久链接更改为post选项,我的网页链接将中断。对于不是技术大师的人来说,有没有简单的方法来解决这个问题。任何(详细的)帮助都将不胜感激。