[英]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.