我正在编写一个Wordpress插件,它添加了一个管理菜单页面。在页面中是一个表单。提交表单时,插件会写入数据库。但后来我遇到了一个问题:每当用户重新加载页面时,都会询问他/她是否再次发送POSTDATA。如果用户单击“是”,则插件会再次写入数据库。
经过一番搜索,我找到了一个解决方案,即“Post-Redirect-Get”模式。 然后,我发现很难将这种模式实现到Wordpress插件中。
插件本身无法发送HTTP 301/302,因为Wordpress核心已经输出了一些内容。
可以在HTML头中插入元标记(以便发出重定向)。但根据W3C,meta重定向已被弃用,所以我认为最好不要使用它。
使用JavaScript的window.location
。但是如果在用户的浏览器中禁用了JavaScript呢?
还有其他方法可以实现重定向吗?
答案 0 :(得分:8)
您可以尝试在admin_init
挂钩中进行插件处理,我相信,在输出任何内容之前,它都会运行。
答案 1 :(得分:1)
节省大量工作。只需使用WordPress设置api。
Codex文章 - > here
奥托更有帮助的文章 - > here
使用WordPress设置api将处理您所描述的“重定向后获取”问题。
答案 2 :(得分:0)
检查数据库中是否存在表,否则插入sql中 如果表存在于数据库中,则表示不执行操作。
选项是set_option,其中插件已激活。
使用register_activation_hook wordpress函数进行包含 选项插件激活