【问题标题】:Intercept 404's in wp and redirect to a post based on its custom field value拦截 wp 中的 404 并根据其自定义字段值重定向到帖子
【发布时间】:2018-02-17 18:50:16
【问题描述】:

所以这是我的问题:

  1. 我有一个“巨大”(超过 1000 页)非 wp 网站,已移植到 wordpress。
  2. 无法将旧网站的 url 匹配到新网站 网站,因为页面标题和一般信息架构 变了
  3. 因此,在包含“列表”(listings_cpt) 的自定义帖子类型中,我存储了一个名为 old_website_url 的自定义字段。
  4. 我的目标是使用 template_redirect 钩子拦截 404 请求,因为根据我的阅读,在加载模板并发送实际标头之前拦截 404 似乎是合适的。
  5. 假设有人试图查看一个不存在的页面,但它的 url 存储在来自 Listings_cpt 帖子的 old_website_url 中,我可以将他重定向到包含该值的帖子永久链接。

我做了很多尝试/错误的方法,但没有成功。

谁能指出我正确的方向?? 有没有更好的方法来做到这一点?

提前致谢

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    你的方法应该有效。以下是您需要做的:

    1. 创建一个可以阅读所有帖子的自定义 404 页面
    2. 对于每个帖子,请阅读其 old_website_url 自定义字段
    3. 如果帖子的 old_website_url 自定义字段与当前 url 匹配,则用户将被重定向到帖子的 url。

    看看WordPress documentation

    【讨论】:

    • 嗨,Nadir,感谢您的帮助。我认为这实际上不会阻止将服务器 404 标头发送到客户端。我需要连同这个逻辑一起发送一个 301 标头
    • 你可以尝试使用 header 函数发送一个自定义的 http 位置标头。它应该覆盖 404 标头
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多