Paramètre

$email

(string) (Requis) Adresse e-mail à vérifier.

Retourne

(string | bool) Si l'e-mail est valide, elle sera retournée, sinon false.

Structure de la fonction is_email()

Définie dans le fichier wp-includes/formatting.php à la ligne 3429 :

function is_email( $email, $deprecated = false ) {
    if ( ! empty( $deprecated ) ) {
        _deprecated_argument( __FUNCTION__, '3.0.0' );
    }

    // Test for the minimum length the email can be.
    if ( strlen( $email ) < 6 ) {
        /**
         * Filters whether an email address is valid.
         *
         * This filter is evaluated under several different contexts, such as 'email_too_short',
         * 'email_no_at', 'local_invalid_chars', 'domain_period_sequence', 'domain_period_limits',
         * 'domain_no_periods', 'sub_hyphen_limits', 'sub_invalid_chars', or no specific context.
         *
         * @since 2.8.0
         *
         * @param string|false $is_email The email address if successfully passed the is_email() checks, false otherwise.
         * @param string       $email    The email address being checked.
         * @param string       $context  Context under which the email was tested.
         */
        return apply_filters( 'is_email', false, $email, 'email_too_short' );
    }

    // Test for an @ character after the first position.
    if ( strpos( $email, '@', 1 ) === false ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'is_email', false, $email, 'email_no_at' );
    }

    // Split out the local and domain parts.
    list( $local, $domain ) = explode( '@', $email, 2 );

    // LOCAL PART
    // Test for invalid characters.
    if ( ! preg_match( '/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/', $local ) ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'is_email', false, $email, 'local_invalid_chars' );
    }

    // DOMAIN PART
    // Test for sequences of periods.
    if ( preg_match( '/\.{2,}/', $domain ) ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'is_email', false, $email, 'domain_period_sequence' );
    }

    // Test for leading and trailing periods and whitespace.
    if ( trim( $domain, " \t\n\r\0\x0B." ) !== $domain ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'is_email', false, $email, 'domain_period_limits' );
    }

    // Split the domain into subs.
    $subs = explode( '.', $domain );

    // Assume the domain will have at least two subs.
    if ( 2 > count( $subs ) ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'is_email', false, $email, 'domain_no_periods' );
    }

    // Loop through each sub.
    foreach ( $subs as $sub ) {
        // Test for leading and trailing hyphens and whitespace.
        if ( trim( $sub, " \t\n\r\0\x0B-" ) !== $sub ) {
            /** This filter is documented in wp-includes/formatting.php */
            return apply_filters( 'is_email', false, $email, 'sub_hyphen_limits' );
        }

        // Test for invalid characters.
        if ( ! preg_match( '/^[a-z0-9-]+$/i', $sub ) ) {
            /** This filter is documented in wp-includes/formatting.php */
            return apply_filters( 'is_email', false, $email, 'sub_invalid_chars' );
        }
    }

    // Congratulations, your email made it!
    /** This filter is documented in wp-includes/formatting.php */
    return apply_filters( 'is_email', $email, $email, null );
}

Fonction et Hook utilisés par is_email()

is_email

Filtre si un e-mail est valide.

apply_filters()

Appel les fonctions qui ont été attaché à un filtre (hook).

Où trouver la fonction is_email() dans le CMS Wordpress

Exemple

if ( is_email( 'email@domain.com' ) ) {
    echo 'E-mail valide.';
}

Sources

Codex Wordpress : is_email()

Autres fonctions dans le même fichier : wp-includes/formatting.php

Retour