在多人共用一個(gè)帳號(hào)的情況下,有這樣一種需求,我不需要知道WordPress的用戶(hù)名和密碼,就能自動(dòng)登錄到公共帳號(hào)。這樣的需要該如何實(shí)現(xiàn)呢?
在主題中使用WordPress內(nèi)置函數(shù) wp_signon() ,可將用戶(hù)名和密碼直接放到代碼中,無(wú)需再去要求用戶(hù)輸入,快捷登錄,省時(shí)省力:
if (!is_user_logged_in()) {
$creds = array();
$creds['user_login'] = 'example'; // 用戶(hù)名是example,自行修改
$creds['user_password'] = 'plaintextpw'; // 密碼是plaintextpw
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
}
將以上代碼應(yīng)用到你的WordPress中即可實(shí)現(xiàn)自動(dòng)登錄功能
現(xiàn)在有種更好的實(shí)現(xiàn)方法,不需要知道帳號(hào)密碼,只需指定用戶(hù)名即可,實(shí)現(xiàn)代碼:
if (!is_user_logged_in()) {
$user_login = 'example'; // 用戶(hù)名是example,自行修改
// 獲取用戶(hù)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中,那么只要打開(kāi)前臺(tái)任何頁(yè)面,就會(huì)自動(dòng)登錄到你設(shè)置的用戶(hù)名下。本文只是提供自動(dòng)登錄的方法,至于是放到單獨(dú)一個(gè)php文件,還是加token驗(yàn)證… 怎么用就得看具體的需求了。
當(dāng)多個(gè)用戶(hù)共用一個(gè)帳號(hào)的情況下,如果你想禁止其他人編輯這個(gè)帳號(hào)的資料(如密碼),可以參考這篇文章:WordPress禁止某用戶(hù)編輯個(gè)人資料