2

我需要在 Wordpress 中创建一个页面。在其中我需要三个选项卡:登录、注册、忘记密码。显然,它们将包含一个登录表单、一个注册表单和一个密码恢复表单。我在这里找到了有关如何创建自定义登录表单的说明:

http://www.tutorialstag.com/custom-wordpress-login-without-using-a-plugin.html

以及如何在此处创建自定义注册表单:

http://www.tutorialstag.com/create-custom-wordpress-registration-page.html

这两个解决方案对我来说似乎很好,所以我想使用它们。出现问题是因为两个代码都使用 $_POST 发送数据,并且它们都在 if($_POST) 循环中执行某些代码。现在,如果我将两个代码放在同一个页面上,并且如果用户尝试登录,它也会触发注册表单的 if($_POST) 循环,反之亦然。

有没有办法让我分开这两个循环,比如 if($_POST['login']) 和 if($_POST['register']) 或其他方式?

理想情况下,我想创建一个插件,为登录表单、注册表单和忘记密码表单添加简码。分离代码并让它们在同一页面中协同工作的最佳方法是什么?

另外,是否有更简单的方法来实现我所需要的?我尝试寻找可能看起来相似但没有运气的插件。

4

1 回答 1

1

是的,和你在这里描述的差不多。

在每个提交按钮上设置“名称”属性 - 例如

<input type="submit" name="login" value="Login" class="mybtnclass" />

然后在解析时,检查是否设置了该值

if(isset($_POST['login'])) :
  // Do login
elseif(isset($_POST['register'])) :
  // Do registration
elseif(isset($_POST['reset'])) :
  // Do password reset
endif;

编辑:

另一种方法是为所有按钮提供相同的“名称”,然后测试“值”属性以确定哪个按钮被按下,例如

<input type="submit" name="submit" value="Login" class="mybtnclass" />
<input type="submit" name="submit" value="Register" class="mybtnclass" />
<input type="submit" name="submit" value="Reset Password" class="mybtnclass" />

<?php
if('Login'===$_POST['submit']) : 
  // Do login
elseif('Register'===$_POST['submit']) : 
  // Do register
elseif('Reset Password'===$_POST['submit']) : 
  // Do password reset
endif;
?>
于 2012-09-03T12:24:57.307 回答