热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入理解多站点中的WordPress数据库

在本专题前面的文章中,我为大家介绍了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 为每个子站点的数据表的表名称添加了 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:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文详细介绍了如何将After Effects中的动画相机数据导入到Vizrt系统中,提供了一种有效的解决方案,适用于需要在广播级图形制作中使用AE动画的专业人士。 ... [详细]
  • 本文探讨了如何在Sitecore 9环境中通过Postman使用API密钥发送请求,包括解决常见错误的方法。 ... [详细]
  • Kubernetes Services详解
    本文深入探讨了Kubernetes中的服务(Services)概念,解释了如何通过Services实现Pods之间的稳定通信,以及如何管理没有选择器的服务。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • Flask中路由的基础定义与应用
    本文介绍了如何在Flask框架中通过装饰器为视图函数指定访问路径,并详细讲解了带参数路由及指定请求方法的实现方式。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文基于《Core Java Volume 2》的内容,深入探讨了网络编程中通过POST方法提交表单数据的技术细节,包括GET与POST方法的区别、POST提交的具体步骤及常见问题处理。 ... [详细]
author-avatar
Zh_jodie_776
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有