WordPress用户user_login、user_nicename、display_name和nickname差别

WordPress 中有一堆的用户名相关的字段,比如 user_login、user_nicenamedisplay_name 和 nickname,还有 first_name 和 last_name,后面两个是名和姓,比较简单,这里就不说了,重点来讲一下前面这几个的区别。

user_login

就是用户注册时输入的用户名,WordPress 默认不支持中文名,所以这里一般都是英文加数字中划线和下划线,每次登陆后台使用的也是这个字段。

user_nicename

user_nicename 也可以说是 user 的 slug, 最长 50 个字符,它用于作者的文章列表链接,比如 http://yanjunwei.com/author/yangjunwei/。用户注册的时候,直接过滤掉 user_login 一些不适合在链接中生成的字符,并且全部转成小写字母生成。

所以大部分 WordPress 用户的 user_nicename 和 user_login 是一样的,这样通过查看某个作者的文章列表链接,就能猜到他的登录账号 user_login,然后就可以暴力破解。

而 user_login 是不可以在后台修改的,而 WordPress 后台也没有提供修改的 user_nicename 的地方,所以这一点比较坑。

display_name

作者显示的名字,在文章详情页,要显示作者名字时,一般可以使用模板函数 the_author() 来调用显示,所以一般看到作者的名字就是这个。

display_name 可以在后台设置,WordPress 会让你从「昵称」,「user_login」,以及「姓」和「名」的四种组合,中选择。

nickname

昵称,目前唯一用途是,在后台输入一个昵称,然后可以让你在选择 display_name 的时候,多一个选择而已。

另外 nickname 是存储在 user_meta 里面的。

那么多的名字,所以个人感觉,最好合并一下:

后台可以设置 user_nicename,防止 user_login 暴露。

nickname 直接和 display_name 合并,用户设置成昵称,显示的名字就是成什么名字。