在多人共用一個帳號的情況下,有這樣一種需求,我不需要知道WordPress的用戶名和密碼,就能自動登錄到公共帳號。這樣的需要該如何實現(xiàn)呢?
在主題中使用WordPress內(nèi)置函數(shù) wp_signon() ,可將用戶名和密碼直接放到代碼中,無需再去要求用戶輸入,快捷登錄,省時省力:
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中即可實現(xiàn)自動登錄功能
現(xiàn)在有種更好的實現(xiàn)方法,不需要知道帳號密碼,只需指定用戶名即可,實現(xiàn)代碼:
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驗證… 怎么用就得看具體的需求了。
當多個用戶共用一個帳號的情況下,如果你想禁止其他人編輯這個帳號的資料(如密碼),可以參考這篇文章:WordPress禁止某用戶編輯個人資料