函数原型:
wp_signon( array $credentials = array(), string|bool $secure_cookie = '' ): WP_User|WP_Error
登录 WordPress 系统,并支持【记住我】的功能。
凭据是一个具有“user_login”、“user_password”和“记住”索引的数组。如果没有提供凭据,则将假定并使用登录表单(如果设置了)。
各种身份验证cookie将由该功能设置,并将根据“记住”凭据是否设置为true设置更长的时间。
注意:wp_signon()不处理设置当前用户。这意味着,如果在“init”钩子启动之前调用该函数,则is_user_loged_in()的计算结果将为false,直到该点为止。如果is_user_loged_in()需要与wp_signon()结合使用,则应显式调用wp_set_current_user()。
参数说明:
$credentials
- user_login 账户
- user_password 用户密码
- remember 记住我。
$secure_cookie 是否使用安全cookie。
如果不提供$credentials,wp_signon将使用$_POST变量(关键字为“log”、“pwd”和“rememberme”)。
此函数将页眉发送到页面。必须先运行它,然后才能返回任何内容。
此函数用于设置身份验证cookie。如果未发送,用户将不会登录。
函数源码:
function wp_signon( $credentials = array(), $secure_cookie = '' ) {
if ( empty( $credentials ) ) {
$credentials = array(
'user_login' => '',
'user_password' => '',
'remember' => false,
);
if ( ! empty( $_POST['log'] ) ) {
$credentials['user_login'] = wp_unslash( $_POST['log'] );
}
if ( ! empty( $_POST['pwd'] ) ) {
$credentials['user_password'] = $_POST['pwd'];
}
if ( ! empty( $_POST['rememberme'] ) ) {
$credentials['remember'] = $_POST['rememberme'];
}
}
if ( ! empty( $credentials['remember'] ) ) {
$credentials['remember'] = true;
} else {
$credentials['remember'] = false;
}
do_action_ref_array( 'wp_authenticate', array( &$credentials['user_login'], &$credentials['user_password'] ) );
if ( '' === $secure_cookie ) {
$secure_cookie = is_ssl();
}
$secure_cookie = apply_filters( 'secure_signon_cookie', $secure_cookie, $credentials );
global $auth_secure_cookie; // XXX ugly hack to pass this to wp_authenticate_cookie().
$auth_secure_cookie = $secure_cookie;
add_filter( 'authenticate', 'wp_authenticate_cookie', 30, 3 );
$user = wp_authenticate( $credentials['user_login'], $credentials['user_password'] );
if ( is_wp_error( $user ) ) {
return $user;
}
wp_set_auth_cookie( $user->ID, $credentials['remember'], $secure_cookie );
do_action( 'wp_login', $user->user_login, $user );
return $user;
}
包含钩子:
apply_filters( 'secure_signon_cookie', bool $secure_cookie, array $credentials )
do_action_ref_array( 'wp_authenticate', string $user_login, string $user_password )
do_action( 'wp_login', string $user_login, WP_User $user )
使用举例:
/**
* Perform automatic login.
*/
function wpdocs_custom_login() {
$creds = array(
'user_login' => 'example',
'user_password' => 'plaintextpw',
'remember' => true
);
$user = wp_signon( $creds, false );
if ( is_wp_error( $user ) ) {
echo $user->get_error_message();
}
}
// Run before the headers and cookies are sent.
add_action( 'after_setup_theme', 'wpdocs_custom_login' );
-
WordPress函数:esc_attr__ 转义属性及翻译WordPress函数:esc_attr__ 转义属性及翻译
-
WordPress函数:esc_attr_e 属性转义、翻译、显示WordPress函数:esc_attr_e 属性转义、翻译、显示
-
WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示
-
WP Multilang WordPress翻译插件WP Multilang插件的主要功能是提供多语言支持,使用户能够创建多语言版本的网站,满足不同语言用户的需求。
-
WordPress公司官网主题在众多的WordPress企业官网主题中,追格公司推出了多款关于WordPress企业官网主题作品。我们之前已经分享过一些关于追格的企业官网主题,包括收费和免费版本,这些主题都因其独特的设计和出色的功能而深受用户喜爱。
-
WordPress必备:使用wp_get_theme()函数获取当前主题详情在WordPress中,wp_get_theme() 函数用于获取当前启用的主题或指定主题的信息。这个函数返回一个 WP_Theme 对象,该对象包含了主题的详细信息,如主题名称、版本、模板目录、样式表目录等。
暂无评论,抢个沙发...