我正在努力将get参数传递给干净url中的单个自定义post类型。因此,例如,有定制的post类型的‘服务’,其中将有一个帖子‘园艺’。
/services/gardening/leeds它将转换为以下内容,以便可以在模板上访问该变量:
/services/gardening?location=leeds但在浏览器中仍然显示如下:
/services/gardening/leeds我只是想知道在使用自定义post类型之前是否有人这样做过?
谢谢
发布于 2019-11-08 23:44:03
您可以在注册自定义post类型之后,使用以下代码在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_参考/冲洗_重写_规则
然后,您可以使用get_query_var("location")读取位置。wordpress的神奇之处在于,这段代码也适用于URL、/services/gardening?location=leeds和/services/gardening。
https://wordpress.stackexchange.com/questions/352189
复制相似问题