掌握WordPress数据管理:优化、备份与恢复

古风汉服美女图集

WordPress 网站由三个主要元素组成:

  1. WordPress 安装本身
  2. wp-content 目录的内容,其中包括主题、插件和上传内容
  3. 数据库,存储所有内容。

大多数 WordPress 用户从未直接接触过数据库,甚至可能不知道它正在不断地填充他们的网站。当 WordPress 提供任何类型的页面时,无论是主页、单个帖子或页面还是存档,它都会访问数据库以显示编辑和管理员已添加到网站的内容。

在本系列教程中,我将详细介绍 WordPress 数据库的不同方面。该系列将分为九部分,涵盖以下内容:

  1. 简介
  2. 数据之间的关系
  3. 内容类型
  4. 用户数据
  5. 元数据
  6. 分类法、类别、标签和术语
  7. 分类法与帖子元数据
  8. 选项表
  9. WordPress 多站点数据

在本介绍中,我将概述数据库表以及它们与您可能习惯在 WordPress 中使用的内容类型的关系,并确定存储内容的位置。

WordPress 中的内容类型

由于数据库表是用来存储内容的,因此在理解它们之前,您需要先了解内容。 WordPress 中有多种类型的内容:

  • 帖子
  • 页面
  • 自定义帖子类
  • 附件
  • 链接
  • 导航菜单项(存储为单独的帖子)

这些内容类型会附加数据:

  • 类别
  • 标签
  • 自定义分类法和术语
  • 发布元数据

除此之外,还有其他类型的内容以不同的方式存储:

  • 小部件
  • 选项
  • 用户
  • 站点(用于多站点安装)
  • 硬编码内容(添加到您的主题或插件中)
  • 来自其他地方的内容(通过 Feed、流媒体或其他技术访问的第三方内容)

所有这些类型的内容都存储在数据库中的某个位置(或者偶尔存储在主题或插件文件中,正如我将展示的那样)。他们可能有自己的条目,也可能是另一个条目的一部分(例如编码到帖子中的流内容)。它们还可以链接到其他表中的数据。例如,有关帖子的数据将链接到有关用户的数据,以便 WordPress 知道谁创作了哪些帖子。

WordPress 数据库结构

WordPress 使用一系列数据库表以及它们之间的关系来最大限度地减少必须存储的数据量 – 这会创建一对多关系。这意味着,一个用户可以拥有许多与其用户记录相关的帖子。它节省了空间 – 如果 WordPress 存储每个用户针对其撰写的每篇帖子的所有用户数据,这将意味着大量重复数据和大量空间。

下图取自 WordPress codex,显示了数据库表及其链接方式:

掌握WordPress数据管理:优化、备份与恢复

大多数表格通过一个字段链接到一个或多个其他表格。该字段将是每个记录的唯一标识符,例如 post_id。此表更详细地显示了这一点:

已存储的数据链接到
wp_posts帖子、页面、附件、修订和导航菜单项 wp_postmeta(通过 post_id

wp_term_relationships(通过 post_id

wp_postmeta每个帖子的元数据 wp_posts (通过 post_id
wp_comments评论 wp_posts (通过 post_id

wp_commentmeta每条评论的元数据 wp_comments (通过 comment_id
wp_term_relationships帖子和分类之间的关系 wp_posts (通过 post_id

wp_term_taxonomy (via term_taxonomy_id)

wp_term_taxonomy分类法(包括类别和标签) wp_term_relationships (通过 term_taxonomy_id
wp_terms您的类别和标签以及分配给自定义分类法的术语 wp_term_taxonomy (通过 term_id
wp_links您博客中的链接(如果您还有的话) wp_term_relationships (通过 link_id
wp_users用户 wp_posts (通过 post_author
wp_user_meta每个用户的元数据 wp_users (通过 user_id
wp_options站点设置和选项(通过“设置”屏幕以及通过插件和主题设置)不适用

有几点值得注意:

  • 默认情况下,数据库表具有 wp_ 前缀。您可以在配置网站时更改此设置,但没有太大价值。
  • 核心表是 wp_posts 表,其中将存储大部分数据。这将(几乎)其他所有内容结合在一起。
  • 只有一张表未附加到任何其他表 – wp_options 表。此表存储有关网站和 WordPress 安装的数据,这些数据与有关帖子或用户的数据无关。
  • 两个表用于存储有关分类法的数据 – 本系列稍后将更详细地解释这些数据。
  • wp_userswp_comments 表没有链接 – 尽管可以指定用户必须注册才能发表评论,但 WordPress 实际上并不存储有关评论的数据针对每个发布它们的用户。
  • 多站点安装将有一些额外的表。我没有在此处包含这些内容,因为这超出了本教程的范围。

将内容链接到数据库表

查看了 WordPress 中的内容类型以及用于存储它们的数据库表后,将两者进行匹配可能会有所帮助。下表显示了使用哪个数据库表来存储每种类型的内容。

内容类型
帖子wp_posts
页面 wp_posts

自定义帖子类型 wp_posts

附件 wp_posts

链接 wp_links

导航菜单项 wp_posts

类别wp_terms
标签 wp_terms

自定义分类法wp_term_taxonomy
分类术语wp_terms
发布元数据wp_post_meta
小部件wp_options
选项wp_options
用户wp_users
硬编码内容 wp_posts(如果添加到帖子)

wp_options(如果添加到小部件)

主题和插件文件(如果硬编码)

第三方内容 wp_posts(如果添加到帖子中)

wp_options(如果通过小部件或插件添加)

主题和插件文件(如果硬编码)

您可能已经注意到,并非所有数据库表都包含在该表中。这是因为其中一些用于存储元数据,另一些用于存储关系,这两者将在本系列后面更详细地介绍。

摘要

希望您现在能够更好地了解 WordPress 使用数据库结构存储不同类型数据的方式和位置。本系列将更详细地探讨此问题的所有方面。

在下一部分中,我将检查数据之间的关系,并更详细地了解特定表的链接方式以及某些表如何纯粹用于存储有关关系的数据。

© 版权声明

相关文章