WordPress$_POST变量在表单提交时完全消失


WordPress $_POST variables disappear completely on form submission

我在WordPress中创建了一个页面模板,用于显示action="的表单。很简单,它不会在提交时发布任何表格数据。我试过var_dump($_POST),但每次都会给我array(0) {}。我尝试过一些网站提供的创建表单的示例,但我无法复制相同的结果。

我一直在寻找这个问题的答案,但似乎什么都不起作用。它一定是内部的或非常先进的东西。我只是想知道为什么我的表单数据不会发布,以及它可能会去哪里。

使用非WP页面检查数据,这意味着将php文件放在web根目录中,并使表单操作指向它,例如。。。action="/formtest.php",并且在该页面上:

<?php 
 var_dump($_POST);
?>

这将测试是否真的没有得到POST变量。然后,由于你99%的可能会发现它们正在被发布,可能的问题是你的页面被其他地方提到的主题重定向到了某个地方(例如,我的主题包括"template_redirect"上的挂钩…)。

如果你精通主题,只是想寻找一个快速修复方法——以在主题升级时丢失它为代价——你可以只为temp.php页面创建一个异常,但许多开发人员处理它的方式是通过插件,或者通过Ajax处理表单。许多其他人也遇到过同样的问题,因此,要么将代码绑定到插件,要么在页面Ajax中执行(因为您无论如何都要提交到SELF…)

这个页面将帮助您了解WP Ajax,这是一个声誉良好、写得很好的文档。