让代码更简单

WordPress函数wp_signon实现用户登陆

重要:本文最后更新于2019-02-21 08:36:36,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

WordPress的用户登录函数wp_signon使用次数不是特别多,因此知道这个函数的人也比较少。wp_signon函数主要使用在前台的用户中心功能上,实现前端登陆效果。通过前端传递的用户名和密码参数,wp_signon可以让该用户登陆到WordPress系统中,并且会设置浏览器cookies,保持登陆。下面我们根据WordPress官方文档,一起来学习下wp_signon函数的使用。

函数描述

将用户账号信息包装成数组作为凭证。如果没有提供凭据,则在设置时将假定并使用登录表单。各种身份验证cookie将由此函数设置,并根据“记住”凭据是否设置为true来设置更长的时间。

注意:wp_signon函数不会处理已经登陆的账户,如果你需要注册后直接登陆,你应该使用wp_set_current_user()函数。wp_set_current_user()是wp_signon与is_user_logged_in()函数的结合。

函数原型

复制
wp_signon( array $credentials = array()string|bool $secure_cookie = '' )

源码位于WordPress目录下wp-includes/user.php文件中,源码较长,这里就不贴了。

参数

$credentials 

数组,默认为空

该数组定义了需要记住的登录信息,如果该参数为空,默认的值如下:

  • $_POST[‘log’]
  • $_POST[‘pwd’]
  • $_POST[‘rememberme’]

$secure_cookie

布尔值,默认值:false

是否使用安全cookie

返回值

(object) 登录失败返回对象WP_Error,登录成功则返回WP_User

简单使用

复制
function custom_login() {
	$creds = array();
	$creds['user_login'] = 'example';
	$creds['user_password'] = 'plaintextpw';
	$creds['remember'] = true;
	$user = wp_signon( $creds, false );
	if ( is_wp_error($user) )
		echo $user->get_error_message();
}
// 在加载头部前设置cookies
add_action( 'after_setup_theme', 'custom_login' );

注意,需要先设置cookies!

感觉很棒!可以赞赏支持我哟~

1 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐