WordPress 数据库

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

数据库还用于存储网站用户的信息,以及驱动网站运行的各种站点选项。

正如你在 Web 服务器课程中学到的,WordPress 使用 MySQL。MySQL 是一个免费、开源的关系型数据库管理系统,被许多流行的网络应用程序所采用。

与 WordPress 数据库交互

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

大多数本地开发环境或托管公司使用一个名为 phpMyAdmin 的免费工具。phpMyAdmin 是一个基于网页的工具,允许你通过浏览器与 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_users 和 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 结尾。

例如,对于文章(posts),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 表存储了网站中“术语”的信息。该表中的每一行代表一个单独的术语。在底层实现中,分类和标签都属于术语。

决定它们是分类还是标签的关键在于它们关联的分类法(taxonomy),而分类法信息存储在 wp_term_taxonomy 表中。

wp_term_relationships 表存储了术语与其父对象(无论是文章、页面还是自定义文章类型)之间的关系。

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

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

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

wp_options

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

数据以键值对(key-value)的格式存储在 wp_options 表中。键是选项的名称,值是选项的值。

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

与选项交互的函数

选项 API(Options API)通常与设置 API(Settings API)一起使用,用于为 WordPress 仪表盘创建设置页面,无论是通过核心程序、插件还是主题。选项 API 提供了与 wp_options 表交互的函数,例如 add_optionupdate_optiondelete_option

wp_links

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

然而,由于仍然可以通过“链接管理器”插件重新启用此功能,为了向后兼容,该数据表得以保留。

总结

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注