将参数传递给自定义帖子类型Single,同时保持URL干净

时间:2019-11-08 作者:R14523

我正在将get参数传递给干净url中的单个自定义帖子类型。因此,例如,将有定制的职位类型“服务”,其中将有单个职位“园艺”。

/services/gardening/leeds
这将转换为以下内容,以便可以在模板上访问变量:

/services/gardening?location=leeds
但在浏览器中仍显示以下内容:

/services/gardening/leeds
我只是想知道在使用自定义帖子类型之前是否有人这样做过?

谢谢

1 个回复
SO网友:Kaperto

注册自定义帖子类型后,可以在URL中添加此参数,并使用以下代码放置:

add_rewrite_tag(\'%location%\', "([^&]+)");


$slug =      get_post_type_object("services")->rewrite["slug"];
$query_var = get_post_type_object("services")->query_var;

add_rewrite_rule(
      "$slug/([^&]+)/([^&]+)$"
    , "index.php?$query_var=\\$matches[1]&location=\\$matches[2]"
    , "top"
);
在插件中添加后,需要刷新一次重写规则:
https://codex.wordpress.org/Function_Reference/flush_rewrite_rules

然后您可以使用get_query_var("location"). wordpress的神奇之处在于,此代码与URL一起工作/services/gardening?location=leeds/services/gardening

相关推荐