【发布时间】:2013-12-16 04:50:13
【问题描述】:
我有一个自定义帖子类型“个人资料” 请求 3 个不同的 URL 时,我需要加载相同的配置文件,例如:
- mysite.com/city1/bob
- mysite.com/city2/bob
- mysite.com/city3/bob
这些都应该加载鲍勃的个人资料。
我将城市添加为类别并将 bob 分配给每个类别。
现在,当我访问这些链接时,它们都会加载 bob 的个人资料,但加载时 URL 会发生变化。我想阻止 URL 更改。
例子:
- mysite.com/city1/bob 加载页面,但变为 mysite.com/city1/tag1/bob
- mysite.com/city3/bob 加载页面,但变为 mysite.com/city1/tag1/bob
我需要它来停止添加标签,我需要它来停止切换到 city1。
如何在 wordpress 中做到这一点?
永久链接设置为/%category%/%postname%
更新,我现在在我的 404 页面中使用 curl 请求来加载内容作为 hack:
$c = curl_init(get_site_url() . '/blog/people/'.$the_slug);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($c);
echo $html;
但我确信这不是最好的方法,我正在尝试使用 add_action('template_redirect','myfunction') 来检测 url 并将我想要的帖子加载到变量中,但是我似乎无法将 $post 全局设置为该帖子。它只是最终加载主页。
这可能吗:用户请求的 URL 不存在,我使用像 template_redirect 这样的钩子并根据他们请求的内容呈现页面,并将 URL 保留为他们请求的内容?我可以在没有 curl 的情况下执行此操作吗?
【问题讨论】:
-
我正在考虑使用 404 页面来检查 url 并根据它加载帖子并将其嵌入到 404 页面中。
-
Wordpress 设置中没有阻止这种情况发生的选项吗?可能是错的。
-
我不这么认为。核心行为是每个页面都有 1 个永久链接,如果一个类别在永久链接中,它会使用 ID 最低的类别。