概要
get_user_by_email
関数は、メールアドレスを指定し、マッチするユーザ情報を取得するための関数です。この関数は、特定のユーザーを特定のメールアドレスで迅速に検索したい場合に非常に便利です。通常、以下のような機能を実装する際に使用されます。
- ユーザーのログイン状態を確認する処理
- パスワードリセット機能の実装
- メール通知機能の実装
- ユーザー情報の確認
- カスタム登録フォームでのユーザー情報の取得
- ユーザー認証に関するカスタマイズ
- フロントエンドでのユーザー情報表示
- 管理者がユーザーを管理するツールの構築
この関数の構文は次のとおりです。
get_user_by( $field, $value );
パラメータ
$field
: 検索に使用するフィールド(通常は ‘email’)。$value
: 検索するメールアドレス。
戻り値
この関数は、指定されたメールアドレスに一致するユーザーオブジェクトを返します。一致するユーザーがいない場合は false
が返されます。
関連する関数
使用可能なバージョン
get_user_by_email
関数は WordPress 2.0.0 以降で使用可能です。
コアファイルのパス
この関数は、wp-includes/user.php
に含まれています。
サンプルコード
サンプル 1: メールアドレスからユーザー情報を取得する
$email = 'example@example.com';
$user = get_user_by_email( $email );
if ( $user ) {
echo 'ユーザーが見つかりました: ' . $user->display_name;
} else {
echo 'ユーザーが見つかりませんでした。';
}
このサンプルは、指定したメールアドレスを持つユーザーが存在するか確認し、ユーザーが見つかった場合はその表示名を出力します。
サンプル 2: 取得したユーザーの情報を表示する
$email = 'user@example.com';
$user = get_user_by_email( $email );
if ( $user ) {
echo 'ユーザーID: ' . $user->ID . '<br>';
echo 'メール: ' . $user->user_email . '<br>';
echo '登録日: ' . $user->user_registered . '<br>';
} else {
echo 'このメールアドレスのユーザーは存在しません。';
}
この例では、指定したメールアドレスに関連するユーザーのID、メールアドレス、登録日を表示します。
サンプル 3: ユーザーの権限を確認する
$email = 'admin@example.com';
$user = get_user_by_email( $email );
if ( $user && user_can( $user, 'administrator' ) ) {
echo 'このユーザーは管理者です。';
} else {
echo 'このユーザーは管理者ではありません。';
}
このコードは、特定のメールアドレスを持つユーザーが管理者権限を持っているかを確認します。
サンプル 4: デフォルトのユーザー登録エラー処理での使用
function register_custom_user( $email, $password ) {
if ( get_user_by_email( $email ) ) {
return 'このメールアドレスは既に使用されています。';
}
// ユーザー登録処理を続行...
}
このサンプルコードは、ユーザー登録時にメールアドレスが既に存在する場合にエラーメッセージを返します。
サンプル 5: WP REST API での利用
add_action( 'rest_api_init', function () {
register_rest_route( 'custom/v1', '/user', array(
'methods' => 'GET',
'callback' => 'get_user_by_email_api',
));
});
function get_user_by_email_api( $data ) {
$email = isset($data['email']) ? sanitize_email( $data['email'] ) : '';
$user = get_user_by_email( $email );
if ( $user ) {
return new WP_REST_Response( $user, 200 );
}
return new WP_REST_Response( 'ユーザーが見つかりません。', 404 );
}
この例では、WordPress REST APIを使用して、指定したメールアドレスに基づいてユーザー情報を取得するカスタムエンドポイントを作成します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | 〇 |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
get_user_by_email
関数は、WordPress 5.5以降に非推奨または削除された情報はありません。