博大精深|深入理解多站点中的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个数据表,外加两个用户数据表存储多站点中的站点数据,下面是这些数据表的简介:

数据表的关系

因为站点中每个网站的数据需要关联到站点的核心数据表,大多数数据表通过 blog_ID 链接到 wp_blogs 数据表,以下3个例外:

  • wp_sitecategories,链接文档到分类项目
  • wp_signups, 已注册未激活的网站
  • wp_usermeta, 通过 wp_users 迂回链接到 wp_blogs 数据表

WordPress多站点的数据库

多站点数据库存储每个站点的方式非常简单粗暴,直接为每个站点复制了一份数据表,因为用户数据存储在主站的数据表中,创建站点数据表时并不会复制不必要的 wp_users 和 wp_usermeta,为了区分每个不同的子站点,WordPress 为每个子站点的数据表的表名称添加了 site ID 字段,如站点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 的 Database API 增加自己的数据表。

本文参考于https://www.wpzhiku.com/understanding-working-data-wordpress-multisite/   ,若有任何来源问题,请联系QQ:1516677079 及时更正。

最有意思的设计站点


最好的UI素材库

我们极力推荐: