Php Wordpress表单未提交
您好,我是WordPress的新手,我已经在WordPress主题中创建了几个php文件。其中detailsform.php由Php Wordpress表单未提交,php,wordpress,forms,action,Php,Wordpress,Forms,Action,您好,我是WordPress的新手,我已经在WordPress主题中创建了几个php文件。其中detailsform.php由 <form method="post" name="details" action="customerdetails.php"> 在点击提交按钮后,表单必须重定向到customerdetails.php,在php中它工作正常,但在wordpress中它出现404错误(未找到页面)。我将所有新的php文件保存在现有的主题文件夹中 请告诉我这是在浪费我的时
<form method="post" name="details" action="customerdetails.php">
在点击提交按钮后,表单必须重定向到customerdetails.php,在php中它工作正常,但在wordpress中它出现404错误(未找到页面)。我将所有新的php文件保存在现有的主题文件夹中
请告诉我这是在浪费我的时间。404错误意味着表单的操作是错误的
<form method="post" name="details" action="customerdetails.php">
^ ^
^ ^
将操作更正为customerdetails.php的确切路径问题必须与路径(提交时表单重定向URL)一致,请尝试使用完整URL。
您能否共享放置表单的URL???//将您的文件customerdetails.php放入当前主题,并使用以下路径:-
// Put your file customerdetails.php in current theme and use following path in action:-
<form method="post" name="details" action="<?php echo get_template_directory_uri() ?>/customerdetails.php">
使用模板编辑php文件。
前
//您的php文件保持原样。
由于wordpress有自己独特的处理ajax调用的方法,wordpress也有通过表单提交post http请求的方法。在报告中有更多的细节
在简要说明中,在wordpress主题上使用functions.php文件:
您需要做的第一件事是在表单标记的action属性中设置,指向以下url:
一旦指向,您需要添加一个隐藏的输入,其中包含name属性action和一个value属性,用于指定操作的名称。然后,需要在functions.php文件上构建处理程序函数。在这里,您将编写处理全局$\u POST或$\u REQUEST变量将接收到的数据所需的代码
function my_handler_function() {
var_dump($_REQUEST);
die();
//request handlers should die() when they complete their task
}
下一步是使用操作钩子admin\u post\u nopriv\u或admin\u post\u将此函数绑定到表单。它们之间的区别在于表单的放置位置。如果您的表单用于wordpress管理员的自定义功能,那么它是私有的,您可以使用admin\u post hook操作。如果此表单是您的公共内容的一部分,请在下面的示例中使用admin_post_nopriv_uu类似:
add_action( 'admin_post_nopriv_my_handler_function', 'my_handler_function' );
正如上面的代码示例所示,您需要调用该函数。在第一个参数中,需要传递wordpress提供的操作钩子以及表单中名为action的隐藏输入中指定的操作值,如admin\u post\u nopriv\uu$action\u value。在第二个参数中,需要将构建的函数名放在functions.php文件中。两者都是强制性的
对于约定事项,通常将函数处理程序的名称设置为与操作输入的值相同,以避免误解并获得更高的可读性
一旦把所有的东西都放在一起,你所要做的就是测试你的代码
快乐编码
PD:如果你想澄清wordpress的这个过程,请查看wp admin/admin post.php文件,但你甚至不敢修改它。你的文件路径正确吗?我把php文件放在我的主题文件夹中,它位于htdocs/wp content/themes/my themes。你当前的文件路径是什么?这两个文件是否都存在于同一个目录中??根据当前方向,两者应位于同一路径。是的,我的文件位于同一路径我尝试了路径c:\\xampp\htdocs\wp content\themes\my theme\customerdetails.phpthas错误,这是一个绝对路径,无法工作。使用与域(服务器)类似的路径