在多人共用一个帐号的情况下,有这样一种需求,我不需要知道WordPress的用户名和密码,就能自动登录到公共帐号。这样的需要该如何实现呢?
方法一:wp_signon()
在主题中使用WordPress内置函数 wp_signon() ,可将用户名和密码直接放到代码中,无需再去要求用户输入,快捷登录,省时省力:
1
2 3 4 5 6 7 8 9 |
if
(
!is_user_logged_in
(
)
)
{
$creds = array ( ) ; $creds [ 'user_login' ] = 'example' ; // 用户名是example,自行修改 $creds [ 'user_password' ] = 'plaintextpw' ; // 密码是plaintextpw $creds [ 'remember' ] = true ; $user = wp_signon ( $creds , false ) ; if ( is_wp_error ( $user ) ) echo $user -> get_error_message ( ) ; } |
将以上代码应用到你的WordPress中即可实现自动登录功能
方法二:无密码方式
现在有种更好的实现方法,不需要知道帐号密码,只需指定用户名即可,实现代码:
1
2 3 4 5 6 7 8 9 10 11 12 |
if
(
!is_user_logged_in
(
)
)
{
$user_login = 'example' ; // 用户名是example,自行修改 // 获取用户id $user = get_userdatabylogin ( $user_login ) ; $user_id = $user -> ID ; // 登录 wp_set_current_user ( $user_id , $user_login ) ; wp_set_auth_cookie ( $user_id ) ; do_action ( 'wp_login' , $user_login ) ; } |
特别说明
如果将方法一或方法二的代码,直接放到主题的functions.php中,那么只要打开前台任何页面,就会自动登录到你设置的用户名下。本文只是提供自动登录的方法,至于是放到单独一个php文件,还是加token验证… 怎么用就得看具体的需求了。 来自:成都婚庆公司 www.daixhunli.com