WordPress: E-Mail-Validation überschreiben
29.08.2012 in: PHP, Webdesign und WordPress
Die internen Funktionen, mit denen WordPress E-Mails auf ihre Gültigkeit überprüft, sind leider sehr … ungenau. Meistens kann man damit leben, beim lokalen Testen nervt es aber doch, daß man immer eine zweiteilige Domain angeben muß. me@localhost
beispielsweise wird zurückgewiesen, obwohl das eine ganz normale, funktionierende Adresse ist.
Wollen wir das Please enter a correct email address. oder dessen jeweilige Übersetzung nur noch sehen, wenn die Adresse wirklich kaputt ist, so müssen wir an zwei Stellen einhaken: 'is_email'
und 'sanitize_email'
für die gleichnamigen Funktionen.
Ich verwende der Einfachheit halber PHPs eingebautes filter_var()
. Auch das ist nicht perfekt, aber besser als das, was WordPress an Bord hat. Das Ticket dazu ruht seit langer Zeit …
GitHub: https://gist.github.com/972837
if ( ! function_exists('t5_extend_email_checks'
) ) { add_filter('is_email'
,'t5_extend_email_checks'
, 10, 2 ); add_filter('sanitize_email'
,'t5_extend_email_checks'
, 10, 2 ); function t5_extend_email_checks( $result, $email ) { return filter_var( $email, FILTER_VALIDATE_EMAIL ); } }
Ergebnis: Diesen Nutzer kann ich problemlos anlegen.