![](/img/trans.png)
[英]wordpress form plugin that allows to give a custom url in form action
[英]Form action WordPress Plugin
我正在创建一个专门的WordPress插件,对于其余的问题,我们将不在此单数情况下使用它,我们将把wordpress plugin文件夹称为plug-folder。 在插件文件夹中,我有多个文件,一个名为form_submit.php的文件和一个名为form_template.php的文件。 form_template.php被注册为页面模板,可以通过WordPress仪表板应用于任何帖子或页面。 问题是因为form_submit.php文件位于plugin文件夹内,我如何映射表单动作以将数据发布到文件中? 只需将其列为
<form action="form_submit.php" method="post" >
将无法按我的需要工作,因为它将在站点的根目录中而不是plugin文件夹中寻找form_submit.php,并尝试在plugin文件夹中为其映射URL方案,例如
<form action="wp-content/plugins/plug-folder/form_submit.php" method="post" >
也不起作用,是否存在我没有想到的方法?
编辑:切换为使用plugins_url()后,建议在我正在使用表单的两个实例之一中工作。 我的注册表(如下所示)不起作用,返回错误加载页面。
<form action="<?php echo plugins_url( 'register_submit.php', __FILE__ ); ?>" method="post" autocomplete="off">
<?php if($_GET['error'] == 'username'){ ?>
<div class="error_message">
Uh oh! That username is already taken.
</div>
<?php }else if($_GET['error'] == 'email'){ ?>
<div class="error_message">
Uh oh! That email is already in use.
</div>
<?php }else if($_GET['error'] == 'email_invalid'){ ?>
<div class="error_message">
Uh oh! Make sure to enter a valid email.
</div>
<?php }else if($_GET['error'] == 'signup_blank'){ ?>
<div class="error_message">
Uh oh! Make sure to fill in all the fields.
</div>
<?php } ?>
<input type="text" name="first_name" class="signup_input" id="first_name_input" placeholder="First Name" value="<?= $_GET['first_name']; ?>" required>
<input type="text" name="last_name" class="signup_input" id="last_name_input" placeholder="Last Name" value="<?= $_GET['last_name']; ?>" required>
<input type="text" name="email" class="signup_input" placeholder="Email" value="<?= $_GET['email']; ?>" required>
<input type="password" name="password" class="signup_input" placeholder="Password" required>
<input type="radio" name="gender" value="Female" required> <font color="#FFF">Female</font>
<input type="radio" name="gender" value="Male" required> <font color="#FFF">Male </font>
<input type="submit" name="submit" class="btn btn-default" value="Sign Up" style="margin-left: 15px;">
</form>
但是我的登录表单有效。
<form action="<?php echo plugins_url( 'login_submit.php', __FILE__ ); ?>" method="post" autocomplete="off">
<div class="list-block">
<ul>
<span class="ti-user"></span>
<div class="item-input">
<input type="text" name="email" placeholder="E-Mail">
</div>
<div class="item-content margin-top-15">
<span class="ti-lock"></span>
<div class="item-input">
<input type="password" name="password" placeholder="Password">
</div>
</ul>
</div>
<div class="log-in-btn margin-top-15 margin-bottom-30" >
<input type="submit" name="submit" class="btn btn-default">
</div>
</form>
我对造成这种情况的差异感到困惑。
使用plugins_url()
<form action="<?php echo plugins_url( 'form_submit.php', __FILE__ ); ?>" method="post" >
Codex参考https://codex.wordpress.org/Function_Reference/plugins_url 。
编辑:请检查wordpress设置。 我认为您尚未启用注册。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.