我需要在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'])还是以其他方式?
理想情况下,我想创建一个插件,为登录表单,注册表单和忘记密码表单添加短代码。分隔代码并使它们在同一页面中协同工作的最佳方法是什么?
此外,是否有更简单的方法来实现我的需求?我试过寻找看起来很相似的插件,但没有运气。
答案 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;
?>