WordPress 数据库


WordPress 使用数据库来存储、检索和显示您在网站上创建的所有内容。这包括文章、页面、评论等。

数据库还用于存储有关您网站用户的信息,以及为网站提供支持的各种站点选项。

正如您在“Web 服务器”课程中所学,WordPress 使用 MySQL。MySQL 是一个免费、开源的数据库管理系统,许多热门 Web 应用程序都在使用它。

与 WordPress 数据库交互

有几种方法可以直接与 WordPress 数据库交互。

大多数本地开发环境或托管公司都会使用一个名为 phpMyAdmin 的免费工具。phpMyAdmin 是一个基于 Web 的工具,允许您使用 Web 浏览器与 WordPress 数据库进行交互。

phpMyAdmin 的替代工具是 Adminer。Adminer 是一个单独的 PHP 文件,您可以将其上传到网站,它提供了类似于 phpMyAdmin 的界面。一些托管公司和本地开发环境更倾向于使用 Adminer,而不是 phpMyAdmin。

最后,如果您无法使用这两者中的任何一个,也可以安装一个名为 SQL Buddy 的插件。

这是一个免费的 WordPress 插件,提供类似于 phpMyAdmin 和 Adminer 的界面,但它运行在 WordPress 仪表盘中。

如果您决定使用 SQL Buddy,请记得在使用完毕后停用并删除该插件。将其安装在网站上可能会带来安全风险。

数据库表

在本课程中,我们将使用 PhpMyAdmin 来检查数据库表。

WordPress 数据库由许多表组成。每个表存储网站的一种不同类型的数据。

每个表都有相同的前缀,该前缀在 wp-config.php 文件中定义。默认情况下,前缀为 wp_,但您可以在 WordPress 安装过程中将其更改为任意值。

让我们先看看用于管理内容的最重要的表。

wp_posts 和 wp_postmeta

wp_posts 表可能是 WordPress 网站中最重要的表,它存储有关网站文章、页面或任何其他自定义文章类型的信息。wp_posts 表中的每一行代表一篇文章。wp_postmeta 表允许您存储每篇文章的其他信息。文章元数据也常被称为自定义字段。

wp_comments 和 wp_commentmeta

wp_comments 表存储文章和页面评论的信息。每当有人评论文章或页面时,该评论就会存储在此表中。wp_comments 表中的每一行代表一条评论。wp_commentmeta 表可以存储每条评论的其他信息。

wp_user 和 wp_usermeta

wp_users 表存储网站用户的所有信息。wp_users 表中的每一行代表一个用户。与其他元数据表一样,wp_usermeta 表可以存储每个用户的其他信息。

用于与文章、评论和用户交互的函数

对于所有 WordPress 数据库表,都有可用于与相应表交互的函数。

这些函数构成了 WordPress 数据库 API 的一部分。

您可以在 WordPress 开发者文档的“代码参考”中使用搜索功能找到所有这些函数。

通常,用于与 WordPress 数据库交互的函数都遵循类似的模式。

有插入函数、更新函数和删除函数。

这些函数通常具有相同的名称,即前缀 wp_ 后跟操作,再后跟表名。

让我们以文章为例,看看这些函数:

  • wp_insert_post 是用于创建新文章的函数
  • wp_update_post 是用于更新现有文章的函数
  • wp_delete_post 是用于删除文章的函数

通常还会有用于获取表中的所有记录或单条记录的函数。

这些函数通常具有相同的名称,即前缀 get_ 后跟表名的单数或复数形式。

例如,get_posts 是用于获取文章集合的函数。

get_post 是用于获取单篇文章的函数。

这些函数通常都有许多参数,可用于筛选返回的结果。

此外,还有用于与各种元数据表交互的函数,通常用于插入、更新或删除元字段。

这些函数通常具有相同的名称,即操作后跟表名的单数形式,再后跟 _meta

例如,对于文章,add_post_meta 是用于插入元字段的函数。

同样,update_post_meta 是用于更新元字段的函数,而 delete_post_meta 是用于删除元字段的函数。

wp_terms、wp_termmeta、wp_term_relationships 和 wp_term_taxonomy

wp_termswp_termmetawp_term_relationshipswp_term_taxonomy 表用于管理 WordPress 网站中的分类目录和标签。

wp_terms 表存储网站术语的信息。wp_terms 表中的每一行代表一个术语。在底层,分类目录和标签都是术语。

决定它们是分类目录还是标签的是它们所关联的分类法,该信息存储在 wp_term_taxonomy 表中。

wp_term_relationships 表存储术语与其父对象之间的关系,父对象可以是文章、页面或自定义文章类型。

最后,wp_termmeta 表可以存储每个术语的其他信息。

用于与术语和分类法交互的函数

与用于和文章、评论及用户交互的函数类似,也有用于与术语和分类法交互的函数,您可以通过在 WordPress 代码参考中搜索 term 或 taxonomy 找到这些函数。

wp_options

wp_options 表存储网站设置的信息。wp_options 表中的每一行代表一个特定设置。例如,siteurl 选项存储网站的 URL,而 blogdescription 选项存储网站的标语。wp_options 表还存储网站当前启用的主题和插件的信息。

数据以键值格式存储在 wp_options 表中。键是选项的名称,值是选项的值。

也可以在 wp_options 表中存储序列化数据。序列化数据是包含多个值的字符串。序列化数据通常用于存储数据数组和对象。一个很好的例子是当前启用的插件列表,它以序列化数组的形式存储。

用于与选项交互的函数

选项 API 通常与 设置 API 一起使用,以通过核心、插件和主题为 WordPress 仪表盘创建设置页面。选项 API 提供了用于与 wp_options 表交互的函数,例如 add_optionupdate_optiondelete_option

wp_links

wp_links 表存储网站链接的信息。链接功能已在 WordPress 3.5 版本中移除

但是,由于仍然可以使用链接管理器插件重新启用此功能,因此该表一直保留,以实现向后兼容。

结论

能够正确识别并与 WordPress 数据库中的表进行交互是一项极其有用的技能,它将帮助您在进行 WordPress 开发时更好地理解 WordPress 的工作原理。