wordpress 默认数据表结构

wordpress 默认数据表结构

wordpress 安装时会创建默认的数据库,具体的表如下:

wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_termmeta
wp_term_relationship
wp_terms
wp_term_taxonomy
wp_usermeta
wp_users

各个数据表的数据和关系

评论信息

1.wp_commentmeta
记录评论的相关信息,就是 key=value 形式的;
如:在后台将评论移到垃圾箱时,相关的信息就会保存在这个表里。
注意:彻底删除评论时,这个表中的相关记录也会删除。

2.wp_comments
记录评论(以及回复评论)的基本信息,评论的内容、作者、以及关联的文章 id 等

这两个表对于 wp-admin 后台的 Comments:

链接

1.wp_links
以前是用来记录链接的,不过 wordpress 3.5 以后,该功能默认取消了(在后台取消了 Links Manager 菜单),如果需要重新开启,则需要安装 Links Manager 插件

选择信息

1.wp_options

记录相关配置,也是以 key=value 的格式保存数据,对应 wp-admin 后台的所有设置,包括:
Settings -> General,
Settings -> Writing,
Settings -> Reading,
Settings -> Discussion,
Settings -> Media,
Settings -> Permalinks,
Settings -> Privacy 等

文章、页面、(菜单)

1.wp_postmeta
记录文章、页面、菜单的相关信息;
注意: 如果 wordpress 开启了自动保存,文章的 revision 是不会记录到 wp_postmeta 表中的。

2.wp_posts
记录 文章、页面、菜单内容,
注意:
但是新添加一篇文章、页面会时会立即保存两条记录,
一条是真实的文章内容,
另一条是 revision 记录。
revision 记录就是文章的拷贝,用来实现撤消、或者回滚到上一个版本等操作。
这是因为 wordpress 在编辑文章时,支持自动保存(默认是 60s),新的保存记录会覆盖原来的记录,(感觉是删除了旧的记录,然后新增一条,此时一篇文章有三条相关记录?第一条真实文章,第二条新增文章时的 revision,第三条时自动保存的 revision(以后自动保存的都会覆盖这条记录?))可以设置保存 revision 的版本数,已经是否启用自动保存功能,多用户时,会为每个用户都保存一个 revision,
同时,每次点击 save、update、publish 按钮时,也会更新 revision
相关文档:
Revisions 官方文档
WordPress Post Revisions Made Simple: A Step by Step Guide (2019)
WordPress Post Revisions: Everything You Need to Know

问题:revision 在哪里设置?怎样设置?

需要花时间去研究一下 revision:
1. 新建文章时;
2. 自动保存(新纪录会覆盖旧纪录);
3. 点击 save(新建时)、publish(首次发布)、update(跟新发布) 按钮时;
4.多用户时;

分类、标签、菜单

term 保存三类内容:
分类 Category、标签 Tag、菜单 nav_menu
标签和分类的区别:类型不同;标签没有父类;
标签和分类对应 wp-admin 后台的 Posts -> Categories 和 Tags

而菜单又和另外两个有所不同,下图红色部分为菜单

菜单对应 wp-admin 后台的 Appearance -> Menu

菜单的基本概念:
为每个菜单取唯一的名字;
每个菜单可以包括很多子菜单,主要有4大类:页面 pages、文章 posts、分类 categories、自定义链接 links;
子菜单通过在 wp-admin 后台用鼠标拖拽实现。

1.wp_termmeta
记录分类、标签、菜单的相关信息
2.wp_term_relationship
记录文章与(分类、标签)的关系,多对多关系,当保存文章时就会记录。

3.wp_terms
记录分类、标签、菜单的基本信息

4.wp_term_taxonomy
记录分类、标签、菜单的相关信息,包括类型,以及该分类下有多少文章。

可以看到存在三种不同的类型。

添加一个分类、标签、菜单,只会保存在 wp_terms 和 wp_term_taxonomy 中;
只有当文章、页面等引用后,才会把关系记录到 wp_term_relationship 中;

特别注意:添加菜单或者子菜单时,也会保存信息到 wp-posts 和 wp-postmeta 表中
term 一届,理解为一层,一级?
taxonomy 分类学、分类法

用户信息

1.wp_usermeta
记录用户的其他信息,如:姓、名、昵称、描述等

2.wp_users
记录用户的基本信息:用户名、密码、邮件等

wp_usermeta 和 wp_users 的信息对于 wp-admin 后台的 Your Profile 的信息

总结

主要涉及几个方面:

  1. post 文章;
  2. comment 评论;
  3. term 分类、标签、菜单等;
  4. link 链接;
  5. option 选项;
  6. user 用户;

而且 wordpress 为上述中常用的几个对象,都设计了配套的扩展表,以“meta”结束的,这些表记录相关的信息(如:把相关记录移到垃圾箱时,也会记录相关信息,方便撤回),同时这些表和 wp-options 表一样,核心都是采用 key-value 键值对的保存模式,更方便后续进行插件扩展。

注意

相关阅读

更多详细的信息,以及表的每个字段信息,请查看官方文档:
官方数据库文档