добавить возвращаемое значение фильтра
function validate_username( $username ) {
$sanitized = sanitize_user( $username, true );
$valid = ( $sanitized == $username );
return apply_filters( 'validate_username', $valid, $username );
}
В wp-includes/registration.php я хочу измениться
$sanitized = sanitize_user( $username, true );
До
$sanitized = sanitize_user( $username, false );
Я не смог успешно написать add_filter там, почему-то он не работает. Не могли бы вы написать фильтр для этого, пожалуйста?
2
Author: Ünsal Korkmaz, 2010-12-10
2 answers
Вот так:
function my_validate_username( $valid, $username ) {
$sanitized = sanitize_user( $username, false );
$valid = ( $sanitized == $username );
return $valid;
}
add_filter('validate_username', 'my_validate_username', 10, 2);
2
Author: Denis de Bernardy, 2010-12-10 12:00:32
Таким образом, проблема вызвана этой строкой в wp-includes/user.php :
$user_login = дезинфицирующий пользователь($user_login, true);
, что делает sanitize_true строгим, что сводится к ascii.
Измените значение на false, чтобы обойти, кто знает, какие еще ошибки это вызовет, поскольку, по-видимому, нелатинские логины в wordpress не поддерживаются, см. Эту тему:
Http://bbpress.org/forums/topic/accents-in-username#post-19037
-1
Author: Dmytri Keiner, 2011-08-04 20:33:37