深入理解 WordPress 数据库中的用户数据 wp_user
WordPress 使用 wp_users 数据表存储用户的主要数据,该数据表结构类似于wp_posts 和 wp_comments 数据表,存储的是需要经常访问的用户数据,该数据表的结构以及该数据表与其他数据表的关系如下:
WordPress 用户数据表关系(点击查看大图)
同时,WordPress 把一些附加用户数据保存在了其他数据表中,包含附加用户数据的有以下两个数据表:
- 附加用户属性数据保存在
wp_usermeta数据表中。 - 在评论中,未登录用户的数据保存在
wp_comments数据表中。
接下来,我们来看一下怎么访问这些数据。
wp_users 数据表
wp_users 数据表中存储着关于每个用户的核心数据,该数据表的字段如下:
| 字段 | 存储内容 | 注意事项 |
|---|---|---|
ID |
用户 ID | 自增 |
user_login |
用户名 | 必需 |
user_pass |
密码 | 如果没有填写,则自动生成 |
user_nicename |
昵称 | 如果没有填写,则自动生成 |
user_email |
邮件地址 | 必需 |
user_url |
网址 | 非必须 |
user_registered |
用户注册的日期和时间 | 自动生成 |
user_activation_key |
用户激活密钥 | 自动生成 |
user_status |
以数字保存的用户状态,表示用户是否已经通过邮件确认注册。 | 自动生成 |
display_name |
公开显示为名称 | 如果没有填写,则自动生成 |
如上表所示,除了一个字段 (user_url) ,其他字段要么是必须填写的,要么就是自动生成的。
用户元数据表
和 wp_users中的数据一样, 一些不是经常访问的数据存储在wp_usermeta 数据表中,如用户色角色和权限。 该数据表同时也用来存储一些附加设置用来提高用户体验,其中包括管理界面配色方案,是否显示管理工具条等设置。
当我们需要通过主题或插件为用户添加附加数据时,我们应该使用这个数据表,而不是在 wp_users 数据表中添加字段,因为该数据表的结构可能会随着 WordPress 升级而变化。。
wp_usermeta 数据表包含的字段。
- ID – 自增 ID
- user_id – 连接到 wp_users
- meta_key – 字段的键
- meta_value – 字段的值
如果需要创建 user_meta 数据,我们可以使用add_user_meta() 函数:
add_user_meta( $user_id, $meta_key, $meta_value, $unique );
其中,第四个参数($unique) 为可选项,指示这个用户字段是否是唯一。
一旦添加了 user_meta 数据,我们可以通过 get_user_meta() 函数访问并输出这个数据。
关于用户字段的创建和访问,涉及到元数据的操作,我将会另外写一篇文章来详细介绍,在这里就不多说了。
用户和其他内容之间的关系
用户可以和两种类型的数据关联起来:文章和评论。在文章中,一篇文章总是有一个作者,这种关系的体现是通过 wp_posts 数据表中post_author字段来实现的,该字段的值就是该文章作者的用户 ID。
评论并不总是连接到 wp_users 数据表:只有当已登录用户发表评论时,这种关系才能建立,这种关系是通过 wp_commerts 数据表中,user_id字段来实现的。
如果评论者没有登录,评论者信息将被存储在 wp_comments 数据表中,这些数据包括:comment_author,comment_author_email, comment_author_url 和 comment_author_IP 字段。
总结
用户是一个 WordPress 站点的必需数据,没有用户,我们就没办法通过仪表盘管理站点,没办法发布文章。
WordPress 把用户核心数据存储在 wp_users 数据表中,附加数据存储在 wp_usermeta 数据表中,并且在 wp_posts数据表中连接用户数据到文章、在 wp_comments 数据表中连接用户数据到评论。
转:https://www.wpzhiku.com/understanding-working-user-data-wordpress/
深入理解 WordPress 数据库中的用户数据 wp_user的更多相关文章
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...
- 数据库:MySQL实战;左链接;查询WordPress数据库中的文章内容
在1年前,我用学生价租了一个阿里云服务器(是真的便宜啊),自己在CentOS系统上用命令行搭了个WordPress的环境,开始了为期一个月使用自建博客的历程. 事实证明,博客在类似博客园这样的平台上写 ...
- Oracle 18c 数据库中scott用户不存在的解决方法
Oracle 18c 数据库中scott用户不存在的解决方法 注:该文为转载 上面标题可直接跳转 原文地址:http://www.cnblogs.com/zangdalei/p/5482732.htm ...
- MySQL_(Java)使用JDBC向数据库中修改(update)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
- MySQL_(Java)使用JDBC向数据库中删除(delete)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
- MySQL_(Java)使用JDBC向数据库中插入(insert)数据
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- CODESOFT中怎样打印数据库中的特定数据?
CODESOFT可用于打印.标记和跟踪的零售库存标签软件,每种产品的售卖都代表着需要打印大量的条码标签.通常我们采用的方法就是在CODESOFT连接数据库批量打 印.但是如果数据量很大,该如何选择 ...
随机推荐
- linux 隐藏权限
原文 ------通过chattr设置档案的隐藏权限------ [root@sdc ~]#chattr --helpUsage: chattr [-RV] [-+=AacDdijsSu] [-v v ...
- 数学:Nim游戏和SG函数
有若干堆石子,两人轮流从中取石子,取走最后一个石子的人为胜利者 以下的性质是显然的 .无法移动的状态是必败态 .可以移动到必败态的局面一定是非必败态 .在必败态做所有操作的结果都是非必败态 在普通Ni ...
- Elasticsearch——QueryBuilder简单查询
elasticsearch中存储的全部文档 1.matchAllQuery() matchAllQuery()方法用来匹配全部文档 public class QueryTest { pub ...
- Hibernate + mysql 查询伪劣时:= 出现 Space is not allowed after parameter prefix ':' MySQL异常
需求: 要求查询一个站点在地市和省的排名信息出来. 效果图: 代码实现: 注释的部分是起初采用的hibernate 查询,但无论怎么写都会报 space is not allowed after pa ...
- 最常用的8款 PHP 调试工具,你用过吗?
Web 开发并不是一项轻松的任务,有超级多服务端脚本语言提供给开发者,但是当前 PHP 因为具有额外的一些强大的功能而越来越流行.PHP 是最强大的服务端脚本语言之一,同时也是 Web 开发者和设计者 ...
- 【BZOJ】2406 矩阵
[算法]二分+有源汇上下界可行流 [题解]上下界 题解参考:[BZOJ2406]矩阵(二分+有源汇有上下界的可行流) #include<cstdio> #include<algori ...
- Spring Boot中使用log4j实现http请求日志入mongodb
之前在<使用AOP统一处理Web请求日志>一文中介绍了如何使用AOP统一记录web请求日志.基本思路是通过aop去切web层的controller实现,获取每个http的内容并通过log4 ...
- jQuery 页面加载初始化
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- c语言学习笔记.数组.
数组: 可以存储一个固定大小的相同类型元素的顺序集合,比如int类型的数组.float类型的数组,里面存放的数据称为“元素”. 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址 ...
- 简单漂亮的php验证码函数
/* *说明:函数功能是生成验证码 * 参数说明:输入 长度,宽度,高度 */ function vcode($_code_length = , $_width = , $_height = ){ $ ...