You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中将默认显示名称设置为username(代码不生效求助)

问题修复方案

你提供的代码失效主要有3个核心原因:

  • 代码中使用了中文弯引号(‘/’),PHP和WordPress仅识别英文半角单引号
  • get_userdata()返回的用户对象里,用户名字段的属性名为user_login,你误写为username导致取值为空
  • 未指定钩子优先级,如果你启用的会员/论坛插件也绑定了user_register钩子修改用户信息,你的逻辑会被插件逻辑覆盖

修复后可直接使用的代码

function change_display_name_to_username( $user_id ) {
    $user_info = get_userdata( $user_id );
    // 增加校验避免异常
    if ( ! $user_info ) {
        return;
    }
    $update_args = array(
        'ID' => $user_id,
        'display_name' => $user_info->user_login
    );
    wp_update_user( $update_args );
}
// 优先级设为999,确保晚于其他插件的注册逻辑执行,不会被覆盖
add_action( 'user_register', 'change_display_name_to_username', 999 );

额外使用说明

  • 代码请放在当前激活主题的functions.php文件末尾,或自定义代码片段插件中,不要修改WordPress核心文件
  • 该代码仅对新注册用户生效,已经注册的存量用户可以执行SQL批量更新:UPDATE wp_users SET display_name = user_login;,注意将wp_替换为你自己的数据库表前缀
  • 测试时请使用无痕窗口走新用户注册流程,避免管理员账号缓存导致效果验证错误

内容的提问来源于stack exchange,提问作者DaveyBear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:15:04