wp_login フックの使い方|説明・引数・注意点

説明

wp_login は、ユーザーがログインしたときに実行されるアクションです。

基本構文

do_action( 'wp_login', string $user_login, WP_User $user )

引数

  • $user_login:ログイン名
  • $user:WP_User オブジェクト

戻り値

値は返しません。

使い方(サンプル)

add_action( 'wp_login', function( $login, $user ) {
	update_user_meta( $user->ID, 'last_login', time() );
}, 10, 2 );

注意点

  • 2つの引数を受け取るには、add_action の第4引数に 2 を指定します。

実務での使いどころ

  • ログインに成功した、直後に、最終ログイン日時の保存や、通知の処理を、行うとき。

よくあるミスと対処

  • 引数の順番を、間違えている。第1引数は、ユーザー名(ログイン名)、第2引数は WP_User。第2引数を受け取るには、add_action() の第4引数を 2 にする。
  • ログイン後の移動先を、このフックで変えようとしている。移動先の変更は、login_redirect フィルターを使う。
  • Cookieによる、自動のログイン(再訪)でも、実行されると考えている。このフックは、ログインの処理が行われたときに、実行される。

NG例

add_action( 'wp_login', function ( $user ) { // 第1引数は、ユーザー名の文字列
	update_user_meta( $user->ID, 'last_login', time() );
} );

OK例

add_action( 'wp_login', function ( $user_login, $user ) {
	update_user_meta( $user->ID, 'last_login', time() );
}, 10, 2 );

使い分け早見表

フック 実行されるタイミング
wp_login ログインに、成功した直後
login_redirect フィルター ログイン後の移動先を、決める
wp_signon() 認証して、ログインする関数

関連項目

wp_signon()、update_user_meta()

公式リファレンス:wp_login | WordPress Developer Resources

コメント

タイトルとURLをコピーしました