将默认显示名称替换为登录名称

时间:2014-02-12 作者:LaGuille

我在论坛上看到了很多关于将默认WordPress显示名更改为名字和姓氏的可能性的帖子。默认情况下,我的主题的默认显示名称设置为名字和姓氏,我希望在默认情况下将其设置回登录名。我想知道我必须添加到函数中的代码位。php来完成工作。我正在使用Wordpress 3.8.1

3 个回复
SO网友:GDY

基于此this answer:

add_action( \'wp_login\', \'wpse_9326315_format_user_display_name_on_login\' );

function wpse_9326315_format_user_display_name_on_login( $username ) {
    $user = get_user_by( \'login\', $username );

    $userdata = array(
        \'ID\' => $user->ID,
        \'display_name\' => $user->user_login,
    );

    wp_update_user( $userdata );

}
一旦他们登录,设置就会改变。因此,您不仅会影响新用户,还会影响现有用户。

SO网友:gdaniel

转到用户->你的个人资料查找名为“公开显示名称为”的部分,选择最适合你网站的选项。

更新时间:

尝试将其添加到函数中。php文件,然后注册新用户:

add_action(\'user_register\', \'change_default_display_name\');

function change_default_display_name($user_id)
{
    $data = get_userdata($userid);
    // check if these data are available in your real code!
    wp_update_user( 
        array (
            \'ID\' => $user_id, 
            \'display_name\' => $data->user_login
        ) 
    );
}

SO网友:Marco Marsala

更好的解决方案是在每次更新用户时更新显示名称。我正在使用这个旧线程,因为我在任何地方都找不到这个解决方案。

/* First name as default display name. */
add_action( \'profile_update\', \'set_display_name\', 10 );

function set_display_name( $user_id ) {

    $data = get_userdata( $user_id );

    if($data->first_name) {

        remove_action( \'profile_update\', \'set_display_name\', 10 ); // profile_update is called by wp_update_user, so we need to remove it before call, to avoid infinite recursion
        wp_update_user( 
            array (
                \'ID\' => $user_id, 
                \'display_name\' => "$data->first_name"
            ) 
        );
        add_action( \'profile_update\', \'set_display_name\', 10 );
    }
}

结束