繁体   English   中英

在WordPress中,如何在检查电子邮件和用户名后以编程方式登录用户

[英]In WordPress, how do I login user programatically after checking email and username

我正在尝试使用wp_signon登录新用户,但是我收到以下消息:“ Warning: Cannot modify header information – headers already sent ..." 根据我在Google上搜索的内容,我需要在返回任何内容之前运行此函数,但在我的情况下,我需要在进行一些处理后才登录用户,那么这个问题的解决方案是什么? 我已经尝试将所有处理和登录代码放在名为process的函数process并编写add_action( "init", "process" ); ,但它不起作用。 提前致谢。

正如我在评论中提到的那样,您仍然可以将该功能放在所有内容之上,如下所示:

<?php
    if($_POST["submit"]){
        //peform login
    }
?>

当你的表单看起来像这样时,把它放在所有其他函数之上:

<form method="post">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" name="submit">
</form>

它适用于这种情况。 注意: $_POST["submit"]的字符串需要与按钮的名称相同。 所以,如果它是这样的:

<input type="submit" name="login">

那么你的php应该是这样的: if($_POST["login"]){}

*这是如何以及为何有效:*

每次加载页面时,它都会检查是否设置了该form ,通常它会继续执行而不执行if语句之后的操作。 但是 ,当您提交表单时,它会重新加载页面并且if语句为true并执行您的登录功能, 然后再进行其他操作。

*在您的情况下:*

<?php
   if($_POST["submit"]){
       wp_signon();   
   }
   //peform your other functions that needs to happen no matter what. 
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM