我是wordpress中的新手,我在处理简单的表单布局/提交方面遇到了一些困难。 我有一个页面(从wp-admin页面创建),其中包含以下代码:
<div class="container-fluid">
<form class="form-horizontal" action="" method="POST" >
<div class="row form-group">
<div class="col-xs-12">
<label for="name">Nome</label>
<input type="text" class="form-control" id="name" name="name" />
</div>
</div>
<div class="row form-group">
<div class="col-xs-12">
<label for="residence">Residência</label>
<input type="text" name="residence" id="residence" />
</div>
</div>
<div class="row form-group">
<div class="col-sm-6">
<input class="btn btn-default" type="submit" value="Registar">
</div>
</div>
<form>
</div>
我的问题是,我不知道在action属性中放入什么以及之后如何处理表单。我试图在模板文件夹中创建一个php文件并将其放入操作中,但它根本不起作用。 我还看到了一些可以添加到functions.php的操作,但我不认为这是解决问题的最佳方法。我想要的只是提交表单,将其作为元数据存储在数据库中,并将用户重定向到主页面。
答案 0 :(得分:1)
我的建议是使用action="#"
,在按提交时将用户重定向到当前页面。然后,您可以检查不显示表单的隐藏字段,而是检查数据并将其存储在数据库中,然后将用户重定向到主页面。
您可以将此文件放在Wordpress安装中的任何位置(只要您的用户可以访问它)。如果可移植性不是问题,请将其粘贴在根目录中,或者如果可移植性很重要,请查找making a page template file。
另外,小心使用属性name="name"
,因为这会破坏你的Wordpress页面处理我似乎记得(Wordpress使用它来识别它所在的页面)。
以下是同一页面处理的示例:
<?php
if (isset($_POST["formSubmitted"])) {
$name = $_POST["formName"];
$residence = $_POST["formResidence"];
// do database work here with $name and $residence
// then output javascript to redirect to main page
echo '<script>window.location = "http://example.com";</script>';
} else {
// we display the form
?>
<div class="container-fluid">
<form class="form-horizontal" action="#" method="POST" >
<div class="row form-group">
<div class="col-xs-12">
<label for="name">Nome</label>
<input type="text" class="form-control" id="name" name="formName" />
</div>
</div>
<div class="row form-group">
<div class="col-xs-12">
<label for="residence">Residência</label>
<input type="text" name="formResidence" id="residence" />
</div>
</div>
<div class="row form-group">
<div class="col-sm-6">
<input class="btn btn-default" type="submit" value="Registar">
</div>
</div>
<input type="hidden" name="formSubmitted" value="1">
</form>
</div>
<?php
}
?>
备用解决方案可以是get_stylesheet_directory_uri(),它返回主题样式表所在的目录。您可以像这样使用它:
<form action="<?php echo get_stylesheet_directory_uri()."/some_php_file.php"; ?>" method="POST">
然后将数据传递给该文件,您可以从中将数据添加到数据库中。
答案 1 :(得分:0)