Недопустимое имя пользователя, если оно содержит символ @

Я хотел бы позволить пользователю войти в систему либо с использованием имени пользователя, либо по электронной почте.

Единственный способ найти письмо – это определить @ symbol с помощью strpos .

Однако WordPress разрешает @ symbol в имени пользователя .

Может ли кто-нибудь помочь мне аннулировать имя пользователя, если в нем есть символ @.

Solutions Collecting From Web of "Недопустимое имя пользователя, если оно содержит символ @"

В многоуровневой установке это 'wpmu_validate_user_signup' :

 add_filter( 'wpmu_validate_user_signup', 'wpse_77904_mu_no_at_in_username' ); function wpse_77904_mu_no_at_in_username( $user ) { if ( FALSE !== strpos( $user['user_name'], '@' ) ) $user['errors']->add('user_name', __( 'That username is not allowed.' ) ); return $user; } 

На одном сайте это 'validate_username' :

 add_filter( 'validate_username', 'wpse_77904_no_at_in_username', 10, 2 ); function wpse_77904_no_at_in_username( $valid, $username ) { if ( FALSE !== strpos( $username, '@' ) ) return FALSE; return $valid; } 

Предостережение: оба не проверены. 🙂