深入理解多站点中的 WordPress 数据库
WordPress多站点网络中的数据库
在本专题前面的文章中,我为大家介绍了WordPress单站点数据库中的每个数据表,以及他们是怎么交互的、数据表之前的关系、以及他们是怎么存储的。在本文中,我们来一起看一下WordPress多站点网络中的数据库,WordPress多站点网络中的数据库会包含一些额外的数据表,多站点网络中的每个网站都有自己独有的数据表,要理解 WordPress 数据库在多站点中的是什么样子的,我们需要了解三种类型的数据表。
多站点模式中的主站点数据库中的数据表
多站点网络中核心站点的数据库,有和单站点一样的11个数据表,这些数据表中保存这主站点中的数据:
- wp_posts
- wp_postmeta
- wp_comments
- wp_commentmeta
- wp_users
- wp_usermeta
- wp_links
- wp_term_relationships
- wp_term_taxonomy
- wp_terms
- wp_options
有两个数据表和网络中的其他站点有关,他们是:
- wp_users
- wp_usermeta
其他数据表的工作方式和在单站点模式中一样,他们存储着主站点的内容,最后两个数据表同时存储了和整个站点有关的数据,就像只在主站点中使用的数据。
多站点模式中其他站点的数据表
除了存储多站点网络中用户数据的两个核心表,WordPress还创建了一些关于多站点网络的附加数据表,他们包括:
- wp_blogs
- wp_blog_versions
- wp_registration_log
- wp_signups
- wp_site
- wp_sitemeta
- wp_sitecategories(可选)
WordPress使用一下7个数据表,外加两个用户数据表存储多站点中的站点数据,下面是这些数据表的简介:
数据表 | 数据 | 说明 |
---|---|---|
wp_blogs | 这个数据表存储了站点中每个网站的信息,每个网站只有一条记录 | 字段包括:blog_id,域名,注册时间 |
wp_blog_versions | 当前网络的数据库版本,升级网络时会更新 | 包括三个字段:blog_id,db_version和last_updated |
wp_registration_log | 创建站点时同时创建的管理员用户 | 对每个站点(通过blog_id定义),该表存储博客管理员的user_id, email地址和注册日期 |
wp_signups | 存储已注册但未激活的站点 | 该数据表的每条记录包含一个唯一的signup_id,每条记录中包含注册站点的域名、标题、用户名、和电子邮件地址,站点激活时,相应记录会自动删除 |
wp_site | 存储主站点的URL | 此数据表只有一条记录,包含3个字段:主站点的站点ID(一般是1),主站点的域名和路径(默认是/) |
wp_sitemeta | 存储多站点网络的附加信息 | 这个数据表相当于多站点网络的wp_options数据表,包含网络的一些设置数据,该数据表包含4个字段:meta_id,site_id(链接到wp_blogs),meta_key和meta_value。 |
wp_sitecategories | 启用了全局分类时的可选数据表 | 启用全局分类可以让每个站点中的用户使用相同的分类,该数据表包含4个字段:cat_ID,cat_name,category_nicename和last_updated,注意该数据表存数分类项目,不只是分类目标项目,还包括自定义分类法 |
wp_users | 所有用户的数据在这里保存而不是保存在每个站点中,因此用户可以访问整个站点中的网站 | 在多站点网络的数据中,WordPress在wp_users数据表中创建了两个附加字段:spam和deleted,两个都是布尔值,默认为NO |
wp_usermeta | 存储站点中的用户附加信息 | 该数据表的使用方法和单站点中的使用方法一样 |
数据表的关系
因为站点中每个网站的数据需要关联到站点的核心数据表,大多数数据表通过blog_ID链接到wp_blogs数据表,以下3个例外:
- wp_sitecategories,链接文档到分类项目
- wp_signups,已注册未激活的网站
- wp_usermeta,通过wp_users迂回链接到wp_blogs数据表
WordPress多站点的数据库
多站点数据库存储每个站点的方式非常简单粗暴,直接为每个站点复制了一份数据表,因为用户数据存储在主站的数据表中,创建站点数据表时并不会复制不必要的wp_users和wp_usermeta,为了区分每个不同的子站点,WordPress为每个子站点的数据表的表名称添加了siteID字段,如站点2的数据表中,wp_posts的数据表名称为wp_2_posts,没个子站点的包含以下几个数据表。
- wp_xx_posts
- wp_xx_postmeta
- wp_xx_comments
- wp_xx_commentmeta
- wp_xx_links
- wp_xx_term_relationships
- wp_xx_term_taxonomy
- wp_xx_terms
- wp_xx_options
上面的xx就是每个子站点的站点ID,这些站点存储数据的方式都和单站点的数据存储方式一样。
总结
如果你整准备使用WordPress的多站点功能,详细了解一下WordPress多站点的数据结构是非常有必要的,这可以帮助我们更好的管理和维护一个WordPress多站点网络,并在出现问题时,快速定位到有问题的站点,如果WordPress多站点中默认的数据结构不符合我们的需求,我么也可以通过WordPress的DatabaseAPI增加自己的数据表。

-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02