2013-12-17 127 views
1

我在wordpress中創建了一個新的重寫規則,首先它運行正常,過了一會兒(幾個小時)它就停止工作,當我嘗試url時,它顯示404頁面。 我的問題是如果我檢查init動作中的重寫規則使用$wp_rewrite->wp_rewrite_rules();,這是否會導致性能問題?檢查是否存在重寫規則

謝謝!

+0

你的意思是幾個小時? –

+0

我的意思是,起初這個新的重寫規則運行良好,我可以使用這個新規則來查找帖子,但幾個小時後(如10小時),相同的網址不再工作。 – aserww106

回答

1

如果您只是搜索您認爲錯誤的規則,Wordpress重寫規則很難調試。 原因是 - 它使用正則表達式,而不是硬編碼規則。

我的建議是安裝插件[rewrite-rules-inspector],然後在插件UI中運行你的url。 這會給出一個更好的主意,哪條規則會導致問題。

然後,您可以通過刪除舊規則或在規則數組頂部添加新規則來修復它add_filter('rewrite_rules_array', ...);請記住,最高規則會覆蓋底部規則。需要

+0

謝謝@Zac,非常有用的信息 – aserww106

2

更多信息,

,但嘗試flush_rewrite_rules。特別是在處理CPT時非常重要。

然而,很奇怪的是,只有在幾個小時後才能看到更改。它應該是直接的。

+0

是的,只要新的重寫規則不起作用,我會執行'flush_rewrite_rules()'並且它會立即生效 – aserww106

+0

請不要在代碼中永久放置[flush_rewrite_rules],它會導致很多服務器資源。您可以運行一次,然後將其刪除,或者安裝插件[rewrite-rules-inspector],在需要時刷新規則。 – Zac