説明
wp_check_password() は、平文のパスワードが、保存済みのハッシュと一致するかを確認する関数です。
基本構文
wp_check_password( string $password, string $hash, string|int $user_id = '' ): bool
引数
$password:平文のパスワード$hash:保存されているハッシュ$user_id:ユーザーID(任意)
戻り値
一致すれば true。
使い方(サンプル)
$user = get_userdata( 1 );
$ok = wp_check_password( 'password', $user->user_pass, $user->ID );
注意点
- ハッシュを直接比較してはいけません。必ずこの関数を使います。
実務での使いどころ
- 入力されたパスワードが、保存されているハッシュと一致するかを確認するとき。
- 独自の認証処理で、パスワードを確認するとき。
よくあるミスと対処
- 保存されたハッシュと、
==で比べている。ハッシュは、毎回違う値になるため、一致しない。この関数で確認する。 - 引数の順番を逆にしている。第1引数は、入力された平文のパスワード、第2引数は、ハッシュ。
md5()など、古い方法で比べている。
NG例
if ( $user->user_pass === wp_hash_password( $password ) ) {
// ハッシュは毎回違う値になるため、一致しない
}
OK例
if ( wp_check_password( $password, $user->user_pass, $user->ID ) ) {
// 一致
}
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_check_password() |
平文のパスワードが、ハッシュと一致するかを確認する |
wp_hash_password() |
パスワードを、ハッシュ化する |
wp_authenticate() |
ユーザー名とパスワードで、認証する |
関連項目
wp_hash_password()、wp_authenticate()
公式リファレンス:wp_check_password() | Function | WordPress Developer Resources

コメント