WordPress 中有一堆的用户名相关的字段,比如 user_login
、user_nicename
、display_name
和 nickname
,还有 first_name
和 last_name
,后面两个是名和姓,比较简单,这里就不说了,重点来讲一下前面这几个的区别。
user_login
就是用户注册时输入的用户名,WordPress 默认不支持中文名,所以这里一般都是英文加数字中划线和下划线,每次登陆后台使用的也是这个字段。
user_nicename
user_nicename
也可以说是 user 的 slug, 最长 50 个字符,它用于作者的文章列表链接,比如 https://XX.com/author/xiaoxin/
。用户注册的时候,直接过滤掉 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
合并,用户设置成昵称,显示的名字就是成什么名字。