+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > 站长学院 > 深入理解 WordPress 文章数据表 wp_posts >

深入理解 WordPress 文章数据表 wp_posts

时间:2024-07-22 11:16:34

和其他 WordPress 术语一样,WordPress 文章理解起来可能有点困难,文章在 WordPress 中既是一个内容类型,也是指存储在数据表中的文章内容。Drupal 在方面处理的就非常好,内容类型就是内容类型,文章就是文章。(WordPress 出现这种情况是由于历史原因,WordPress 早期是一个博客应用,没有考虑到其他类型的内容,然后 WordPress 使用得越来越多,就不好修改了)。

好在 WordPress 中术语并不是很多,只要稍微思考一下就理解了。在 WordPress数据库中,有以下几种类型的数据。

Posts 文章
Users 用户
Comments 评论
Links 链接
在本文中,我将为大家深入解释一下文章,简单介绍一下文章类型,以及文章和其他数据之间的关系。

文章的定义
首先,来迷糊一下,在 WordPress 中,文章是一种文章类型。

一篇 post 是存储在 wp_posts 数据表中的一条内容,每条内容都有一个 post_type 字段,这个字段的值可能是 post, page 或其他自定义数据。
文章是一个文章类型,用来发布文章或新闻,具体要看你开发的是什么网站了。
wp_posts的数据表结构如下:

WordPress 文章数据表结构
WordPress 文章数据表结构
 WordPress 中的文章类型
WordPress 默认有以下几个文章类型:

Post 文章
Page 页面
Attachment 附件
Revision 文章版本
Navigation Menu Item 导航菜单
除了这些默认文章类型,我们还可以通过register_post_type() 函数注册自定义文章类型,这就意味着,WordPress 可以有很多文章类型,只要你不嫌多,可以一直往上加。每个文章类型的数据字段和默认的文章类型一样,这里有一个术语需要注意一下:“自定义文章类型”不是一个内容类型,而是除了默认的文章类型以外所有自己添加的文章类型的统称。

举例说明一下,当我们构建自定义查询的时候,有一个'post_type'参数:

复制
'post_type' => 'post'
这个参数查询的是默认的文章,如果需要查询其他类型的文章,修改一下参数值就可以了,在下面,我们修改为 books, 查询的就是 Book 文章类型的内容。

复制
'post_type' => 'book'
我们可以是用这个参数查询任何一个文章类型的数据,也可以同时查询多个文章类型的数据,不过这不是本文的重点,在这里就不多说了,有兴趣的朋友可以移步WP_Query 文章页面深入了解。

理解默认的文章类型
下面我们来简单了解一下默认的文章类型,看看他们之间的共同点和区别。

文章类型    用途    备注
Post    博客文章    核心文章类型
Page    静态页面    用来显示一个内容比较固定的页面,文章可以有父级页面,每个父级页面可以有多个子页面。
Attachment    文章附件    上传到某篇文章的媒体将会附加到这篇文章,作为这篇文章的附件,该媒体的 post_parent 字段将被设置为这篇文章的 ID,在多媒体上传页面上传的媒体没有附加到文章, post_parent  为空,guid 字段用来存储媒体文章的 URL。
Revision    文章版本    每个版本都被附加到一篇文章,版本的post_parent字段为所附加到文章的文章 ID。
Navigation Menu Items    导航菜单    每个菜单都包含若干个导航菜单项目,每个项目被保存为一条文章记录,menu_order 字段用来记录菜单的顺序,其他附加数据,如打开方式、父级菜单保存在 wp_postmeta 数据表中。
自定义文章类型可以注册为和内置文章类型一样的形式(除了附件),每个文章类型都可以有自己的界面。

文章之间的关系
如上表所见, post_parent 是一个非常重要的字段,该字段存储着不同文章之间的父子关系,包括:

父级页面和子页面
每个文章的修订版本
附件和附件所附加到的文章
在自定查询中,我们有很多地方需要用到 post_parent 字段,例如:查询指定页面的子页面,下面的例子中 ID 是一个数字,字父级页面的 ID。

复制
'post_parent' => 'ID'
同样,我们也可以使用类似的方式显示附加到一篇文章的所有附件,或者查询没有附加到任何文章的附件(在多媒体管理界面上传的媒体通常没有附加到文章),查询这一类数据,只需要把 post_parent 的值设置为0就可以了:

复制
'post_parent' => 0
对修订版本的查询我们不太可能用到,在这里就不多说了。

另外,我们可以使用 post_parent_in ,该参数的值为一个数组,用来查询一组文章或页面的子页面。

总结
理解 wp_posts 数据表和存储方式是理解 WordPress 数据库必不可少的一步, wp_posts 数据表主要用来存储文章,包括内置文章类型和自定义文章类型。该数据表内记录之间的层级关系通过post_parent字段存储和体现。

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title