Wordpress - 在同一页面中单独登录和注册表单

时间:2012-09-03 07:43:11

标签: wordpress plugins login registration

我需要在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'])还是以其他方式?

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

此外,是否有更简单的方法来实现我的需求?我试过寻找看起来很相似的插件,但没有运气。

1 个答案:

答案 0 :(得分:1)

是的,就像你在这里描述的一样。

在每个提交按钮上设置'name'属性 - 例如

<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;

编辑:

另一种方法是给所有按钮指定相同的“名称”,然后测试'value'属性以确定按下哪个按钮。

<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;
?>