如何使默认的wordpress显示名称用户名代替?

时间:2018-04-29 08:35:14

标签: php wordpress login

我在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 :(得分:0)

你可以尝试这个:

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对象中的其他值更改userhttps://codex.wordpress.org/Function_Reference/get_userdata

答案 1 :(得分:0)

我认为您的代码无效,因为它缺少一行$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似乎强制将显示名称切换为用户名而不是用户ID。