【问题标题】:check if rewrite rule exist检查是否存在重写规则
【发布时间】:2013-12-18 10:13:39
【问题描述】:

我在 wordpress 中创建了一个新的重写规则,起初它运行正常,过了一段时间(几个小时)它停止工作,当我尝试 url 时,它显示 404 页面。 我的问题是如果我检查init 操作使用$wp_rewrite->wp_rewrite_rules(); 中的重写规则,这会导致性能问题吗?

谢谢!

【问题讨论】:

  • 几个小时是什么意思?
  • 我的意思是,起初这个新的重写规则效果很好,我可以使用这个新规则来查找 post ,但是几个小时后(比如 10 小时),相同的 url 不再工作了。跨度>

标签: wordpress url-rewriting


【解决方案1】:

需要更多信息,

但请尝试 flush_rewrite_rules 。非常重要,尤其是在处理 CPT 时。

奇怪的是,您只在几个小时后才看到这些变化。应该是即时的。

【讨论】:

  • 是的,只要新的重写规则不起作用,我就做flush_rewrite_rules(),它会立即起作用
  • 请不要将 [flush_rewrite_rules] 永久放在您的代码中,这会导致大量服务器资源。您可以运行一次,然后将其删除,或者安装插件 [rewrite-rules-inspector],以便在需要时刷新规则。
【解决方案2】:

Wordpress 重写规则很难调试,如果你只是搜索你认为错误的规则。 原因是 - 它使用正则表达式,而不是硬编码规则。

我的建议是安装插件 [rewrite-rules-inspector],然后在插件 UI 中运行你的 url。 它会给出一个更好的主意,哪个规则会导致问题。

然后,您可以通过删除旧规则或在规则数组顶部添加新规则来修复它add_filter('rewrite_rules_array', ...); 请记住,顶部规则会覆盖底部规则。

【讨论】:

    猜你喜欢
    • 2014-07-19
    • 2011-11-27
    • 2019-08-19
    • 2014-05-09
    • 2011-12-19
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    相关资源
    最近更新 更多