我正在将get参数传递给干净url中的单个自定义帖子类型。因此,例如,将有定制的职位类型“服务”,其中将有单个职位“园艺”。
/services/gardening/leeds
这将转换为以下内容,以便可以在模板上访问变量:
/services/gardening?location=leeds
但在浏览器中仍显示以下内容:
/services/gardening/leeds
我只是想知道在使用自定义帖子类型之前是否有人这样做过?
谢谢
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
也