函数文档

email_exists()

💡 云策文档标注

概述

email_exists() 函数用于检查指定邮箱地址是否已在 WordPress 中注册。它返回关联的用户 ID 或 false,常用于用户注册流程中验证邮箱唯一性。

关键要点

  • 参数:$email(字符串,必需),要检查的邮箱地址
  • 返回值:成功时返回用户 ID,失败时返回 false
  • 用途:验证邮箱是否已被注册,防止重复注册
  • 相关函数:可与 username_exists() 结合使用进行用户验证
  • Hook:提供 email_exists 过滤器,允许自定义返回值

代码示例

$email = 'myemail@example.com';
$exists = email_exists( $email );
if ( $exists ) {
    echo "That E-mail is registered to user number " . $exists;
} else {
    echo "That E-mail doesn't belong to any registered users on this site";
}

注意事项

  • 此函数在 SHORTINIT 模式下未定义,使用时需确保环境支持
  • 内部基于 get_user_by() 实现,依赖用户数据表
  • 适用于主题和插件开发,特别是注册和用户管理功能

📄 原文内容

Determines whether the given email exists.

Description

For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.

Parameters

$emailstringrequired
The email to check for existence.

Return

int|false The user ID on success, false on failure.

More Information

This function will check whether or not a given email address ($email) has already been registered to a username, and returns that users ID (or false if none exists). See also username_exists.

This function is normally used when a user is registering, to ensure that the E-mail address the user is attempting to register with has not already been registered.

Source

function email_exists( $email ) {
	$user = get_user_by( 'email', $email );
	if ( $user ) {
		$user_id = $user->ID;
	} else {
		$user_id = false;
	}

	/**
	 * Filters whether the given email exists.
	 *
	 * @since 5.6.0
	 *
	 * @param int|false $user_id The user ID associated with the email,
	 *                           or false if the email does not exist.
	 * @param string    $email   The email to check for existence.
	 */
	return apply_filters( 'email_exists', $user_id, $email );
}

Hooks

apply_filters( ’email_exists’, int|false $user_id, string $email )

Filters whether the given email exists.

Changelog

Version Description
2.1.0 Introduced.

User Contributed Notes

  1. Skip to note 3 content

    Example
    If the E-mail exists, echo the ID number to which the E-mail is registered. Otherwise, tell the viewer that it does not exist.

    $email = 'myemail@example.com';
    $exists = email_exists( $email );
    if ( $exists ) {
    	echo "That E-mail is registered to user number " . $exists;
    } else {
    	echo "That E-mail doesn't belong to any registered users on this site";
    }