Как сделать отображаемое имя WordPress по умолчанию вместо имени пользователя? - PullRequest
0 голосов
/ 29 апреля 2018

Я попробовал несколько кодов в functions.php, чтобы заставить WordPress по умолчанию отображать имя пользователя при регистрации без удачи. Вот мои коды:

add_action('user_register', 'registration_save_displayname', 1000);
function registration_save_displayname($user_id) {
if ( isset( $_POST['user_login'])){
    $pretty_name = $_POST['user_login'];
    wp_update_user( array ('ID' => $user_id, 'display_name'=> $pretty_name) ) ;
}
}

В настоящее время WordPress создает отображаемое имя, используя имя пользователя (если имя и фамилия недоступны в регистрационной форме), плюс числовой номер, такой как johnav2345, если имя пользователя - johnav.

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Не думаю, что ваш код работает, потому что в нем отсутствует строка $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, кажется, заставляет отображаемое имя переключаться на Имя пользователя вместо Идентификатора пользователя.

0 голосов
/ 29 апреля 2018

Вы можете попробовать это:

function user_set_default_displayname($user_id) {

    $user = get_userdata($user_id);

    $args = array(
        'ID' => $user_id,
        'display_name' => $user->user_nicename,
    );

    wp_update_user( $args );
}
add_action('user_register', 'user_set_default_displayname', 90);

Не проверено, но оно должно работать.

Вы можете изменить user_nicename с другими значениями из user объекта: https://codex.wordpress.org/Function_Reference/get_userdata

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...