Не думаю, что ваш код работает, потому что в нем отсутствует строка $user_nicename
.
На всякий случай, если это кому-нибудь нужно, вот полностью рабочий код:
function set_default_display_name( $user_id ) {
$user = get_userdata( $user_id );
$name = $user_id;
$args = array(
'ID' => $user_id,
'display_name' => $name // Force Display Name to be a Username
);
wp_update_user( $args );
}
add_action( 'user_register', 'set_default_display_name' );
Не уверен, почему WP не распознает $user_login
как имя пользователя, но с вышеуказанными кодами он работает отлично. WordPress, кажется, заставляет отображаемое имя переключаться на Имя пользователя вместо Идентификатора пользователя.