我在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
。
我怎样才能做到这一点?
答案 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
对象中的其他值更改user
:https://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。