2010-09-13 40 views
4

我正在寫一個Wordpress插件,它添加了一個管理菜單頁面。在頁面中是一個表單。提交表單時,插件將寫入數據庫。但是後來我遇到了一個問題:無論何時用戶重新加載頁面,他/她都會被問到是否要再次發送POSTDATA。如果用戶點擊是,該插件再次寫入數據庫。如何實現Post-Redirect - 在Wordpress插件的管理菜單頁面中獲取?

經過一番搜索,我發現了一個解決方案,「後重定向消息獲取」的格局。 然後,後來,我發現很難將此模式實現爲Wordpress插件。

  1. 該插件本身無法發送HTTP 301/302,因爲有一些內容已經由Wordpress核心輸出。

  2. 它可以插入meta標籤(以發出重定向)在HTML頭。但根據W3C的說法,meta重定向已被棄用,所以我認爲最好不要使用它。

  3. 使用JavaScript的window.location。但是,如果JavaScript在用戶的瀏覽器中被禁用呢?

有沒有其他方法可以實現重定向?

+0

+1的關心後重定向-GET ... 90%的WordPress開發者問題可能從未聽說過。 – blockhead 2010-09-13 14:03:43

回答

8

你可以嘗試在admin_init掛鉤,對此,我認爲,在任何內容輸出運行做你的插件的處理。

+1

+1。掛鉤到像「admin_init」這樣的早期行動是一種可行的方式。使用'wp_redirect'函數也是一個好主意。 – mjangda 2010-09-13 14:04:32

1

節省工作了很多。只需使用WordPress設置API。

法典文章 - >here

奧托更多有價值的文章 - >here

使用WordPress的設置API會照顧你所描述的「後重定向消息獲取」的問題。

0
  1. 檢查,如果表中數據的基礎上存在,或者在SQL插入如果不是 存在不動作如果表在數據庫中存在。

  2. 選項set_option其中插件被激活。

  3. 使用WordPress的register_activation_hook功能包括 選項插件激活

對不起我的英語很糟糕,但我認爲你能理解