如何实现Post-Redirect - 获取Wordpress插件的管理菜单页面?

时间:2010-09-13 13:43:10

标签: wordpress redirect wordpress-plugin post-redirect-get

我正在编写一个Wordpress插件,它添加了一个管理菜单页面。在页面中是一个表单。提交表单时,插件会写入数据库。但后来我遇到了一个问题:每当用户重新加载页面时,都会询问他/她是否再次发送POSTDATA。如果用户单击“是”,则插件会再次写入数据库。

经过一番搜索,我找到了一个解决方案,即“Post-Redirect-Get”模式。 然后,我发现很难将这种模式实现到Wordpress插件中。

  1. 插件本身无法发送HTTP 301/302,因为Wordpress核心已经输出了一些内容。

  2. 可以在HTML头中插入元标记(以便发出重定向)。但根据W3C,meta重定向已被弃用,所以我认为最好不要使用它。

  3. 使用JavaScript的window.location。但是如果在用户的浏览器中禁用了JavaScript呢?

  4. 还有其他方法可以实现重定向吗?

3 个答案:

答案 0 :(得分:8)

您可以尝试在admin_init挂钩中进行插件处理,我相信,在输出任何内容之前,它都会运行。

答案 1 :(得分:1)

节省大量工作。只需使用WordPress设置api。

Codex文章 - > here

奥托更有帮助的文章 - > here

使用WordPress设置api将处理您所描述的“重定向后获取”问题。

答案 2 :(得分:0)

  1. 检查数据库中是否存在表,否则插入sql中 如果表存在于数据库中,则表示不执行操作。

  2. 选项是set_option,其中插件已激活。

  3. 使用register_activation_hook wordpress函数进行包含 选项插件激活

  4. 对不起我的英语,非常糟糕,但我认为你可以理解