説明
wp_signon() は、ユーザー名とパスワードでログイン処理を行う関数です。
基本構文
wp_signon( array $credentials = array(), string|bool $secure_cookie = '' ): WP_User|WP_Error
引数
$credentials:user_login、user_password、remember$secure_cookie:SSL専用Cookieにするか
戻り値
ログイン成功時は WP_User、失敗時は WP_Error。
使い方(サンプル)
$user = wp_signon( array(
'user_login' => 'taro',
'user_password' => 'password',
'remember' => true,
) );
注意点
- 出力が始まる前に呼ぶ必要があります。
- 失敗時は
is_wp_error()で確認します。
実務での使いどころ
- 独自のログインフォームで、ユーザー名とパスワードを確認し、ログインさせるとき。
よくあるミスと対処
- 戻り値が
WP_Errorのときを、考えていない。認証に失敗すると、エラーが返る。 - 出力を始めたあとに呼び、「headers already sent」になり、Cookieが設定されない。
$credentialsのキーを間違えている(user_login・user_password・remember)。wp_signon()のあとの、同じリクエストでは、is_user_logged_in()がfalseのまま。必要なら、wp_set_current_user()も呼ぶ。
NG例
$user = wp_signon( array( 'user_login' => $name, 'password' => $pass ) ); // キーが違う
OK例
$user = wp_signon( array(
'user_login' => $name,
'user_password' => $pass,
'remember' => true,
), is_ssl() );
if ( is_wp_error( $user ) ) {
// 認証に失敗
}
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_signon() |
認証し、ログインする(Cookieも設定) |
wp_authenticate() |
認証だけを行う(ログインはしない) |
wp_set_auth_cookie() |
ログインのCookieを設定する(認証は行わない) |
関連項目
wp_set_auth_cookie()、wp_authenticate()
公式リファレンス:wp_signon() | Function | WordPress Developer Resources

コメント