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

Posted

技术标签:

【中文标题】Wordpress - 在同一页面中单独的登录和注册表格【英文标题】:Wordpress - Separate Log in and Register forms in the same page 【发布时间】:2012-08-27 22:50:29 【问题描述】:

我需要在 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】:

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

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

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

【讨论】:

标记你是一个传奇。这就像一个魅力。非常感谢。

以上是关于Wordpress - 在同一页面中单独的登录和注册表格的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一个域中使用 Nginx 和 Gunicorn 运行 Django 和 Wordpress?

wordpress怎么做才能去掉页面和文章下面的评论框?

wordpress 页面怎么设置写文章

Laravel 5.2 在同一页面上登录和注册表单

如何在 Wordpress 中实现我的自定义登录页面?

需要将 wordpress 帖子分类到子文件夹中,而无需在子文件夹中单独安装 wordpress