【发布时间】:2015-03-11 07:12:36
【问题描述】:
我有一个 WordPress 网站,它有一个名为 Places with URL 的标准页面
example.com/places/
我有几个由城市调用的子页面
example.com/places/city-1
example.com/places/city-2
现在,我有一个自定义帖子类型 Place,它应该指示一个地方,并且应该有像
example.com/places/place-1
但是,如果我使用 city-1, city-2 转到之前的链接之一,显然我会得到 404,因为该永久链接没有 place。
有没有办法让 WordPress 退回到以前的永久链接。因此,如果没有带有该名称的 place,请查找带有该名称的 page。
【问题讨论】:
-
路由的工作方式不允许这样做。它基本上是一个正则表达式模式列表,在您的情况下它们重叠,因此列表中的第一个将匹配。在此列表的开头添加了自定义帖子类型模式。完成这项工作的唯一方法是添加自定义路线/模式并自行处理,决定要显示的内容。因此,请查看
add_rewrite_rule,在插件中捕获该路线,然后将全局$wp_query设置为您需要的。