强制将名称显示为全名

时间:2012-10-07 作者:Svish

有没有办法强制所有用户显示名称Firstname Lastname 或者将其更改为默认值?

2 个回复
SO网友:fuxia

这是在用户注册期间设置的。您可以更改每个过滤器的值\'user_register\'.

未测试的示例代码:

/* Plugin Name: First name plus last name as default display name. */
add_action( \'user_register\', \'wpse_67444_first_last_display_name\' );

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

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 );
    }
}

结束

相关推荐

有没有可能导致wp_USERS表消失的已知错误?

我管理许多WordPress支持的网站。其中一个网站是新的,自一个月前成立以来一直保持原样。今天,我尝试登录,但无法做到-我所有的登录尝试都被拒绝。经过调查,我发现wp_users 缺少表。所有其他表格都存在,博客功能齐全。数据库中的任何条目或任何文件均未表明存在任何形式的黑客行为。我明天就要休假了,这让我有点担心,因为我是唯一负责这些网站的人。当然,我已经更改了所有密码,我可能会重新安装代码库,但我想知道是否有任何常见的bug可能导致这种情况?运行的WP版本为3.4.1。值得注意的安装插件包括WP Su