欢迎光临
我们一直在努力

理解和利用 WordPress 中的posts表

建站超值云服务器,限时71元/月

本文目录
[隐藏]

  • 1定义posts
  • 2WordPress中的post类型
  • 3理解缺省的post类型
  • 4posts之间的关系
  • 5总结

本文是《理解和利用 WordPress 中的数据》系列教程的第 5 部分,该系列共包含以下 9 个部分:

  1. 理解和利用 WordPress 中的数据(介绍)
  2. 理解和利用 WordPress 中的数据关系
  3. 理解和利用 WordPress 中的内容类型
  4. 理解和利用 WordPress 中的用户数据
  5. 理解和利用 WordPress 中的posts表
  6. 理解和利用 WordPress 中的元数据(Metadata)
  7. 理解和利用 WordPress 中的分类法(Taxonomies)和分类项(Terms)
  8. 理解和利用 WordPress 中的选项表
  9. 理解和利用 WordPress 中的数据 – 多站点

像很多 WordPress 术语一样,术语“posts”很容易被混淆,因为它既指一种文章类型(post type),又指存储在特定数据表中的内容类型(content type)。

在这里,我要澄清两者之间的差异,并详细说说post类型(post types)。

在本系列前面的部分,我讲解了WordPress中的不同的内容类型,它们被存储在几个不同的数据表中:

  • 文章
  • 用户
  • 评论
  • 链接

在本教程中,我会查看更多post的细节和概述其他的post类型,他们之间的关系,怎么理解这些来帮助你使用它们。

定义posts

首先,我从定义post和它与文章(Posts)怎么区分开始。(确实这很令人迷惑,而且加一个大写首字母并没有让事情更清楚):

  • 一个`post`是一个存储在`wp_table`中的内容项,每一项都有一个`post_type`赋值给它,可能是`post`,`page`或者其他。
  • 文章(Post)是一种post类型,用作博客文章或者其他项目,这取决于你的站点的类型。

`wp_table`如下图所示:

理解和利用 WordPress 中的posts表

理解吗?如果没有,继续读下去,就会更清楚!

WordPress中的post类型

WordPress有5种内置的 post 类型 :

  • 文章(Post)
  • 页面(Page)
  • 附件(Attachment)
  • 修订版本(Revision)
  • 导航菜单项(Navigation Menu Item)

另外你可以通过register_post_type() 函数添加 自定义post类型 ,这意味这你的WordPress可以有任意的你想要的post类型。每一种自定义post类型都有与内置类型相同的状态-经常我会听到有人说自定义post类型是一种文章类型,其实不是的。

我来举例说明一下。当写一个自定义查询文章的时候,你会向查询参数添加下面的代码:

1
'post_type' => 'post'

‘post_type’ => ‘post’

但是如果你创建了自定义了名为`my_post_type`的post类型,你需要添加下面的代码到你的查询参数:

1
'post_type' => 'my_post_type'

‘post_type’ => ‘my_post_type’

你可以使用这个`post_type`参数查询任何post类型。甚至如果你想要的话你可以查询多种post类型。我不会涉及更多细节因为这已经超出了本教程的范畴,但是你可以在WordPress Codex页面学习更多关于 WP_Query 的内容。

理解缺省的post类型

我们来快速学习下每一种内置的post类型,它们如何相似和不同。注意在下面的表中,我使用一般意义上的术语post来描述所有post类型的内容。

post类型 用途 说明
Post 博客文章或其他相似的 主要的post类型-在主博客页面列出
Page 静态页面 用来单独显示-一般不用于存档(尽管可以这么用)
Attachment 文档和图片(可能附录或不附录到post中) 上传到post的媒体文件将会在它的`post_parent`字段拥有那个post的ID。通过仪表盘的媒体界面上传的图片的该字段为空。`guid`字段用来存储媒体文件的url
Revision 每一个post的单个的修订 每一次的修订都会附录到post:post的`ID`会存储在修订的`post_parent`字段。
Navigation Menu Items 单独的导航菜单项 每一个菜单都包含许多的导航项,每一个会被存储为一个post,`menu_order`字段用来存储关于导航菜单项的顺序,其他的数据比如目标(target)和父菜单项存储为`wp_postmeta`表的记录。

自定义的post类型可以注册为与内置post类型行为相同(除了`attachment`),但是默认值是`post`.每一种post类型都有自己的接口。

posts之间的关系

如你从上表中看到的,`post_parent`是很重要的一个字段,它存储着不同posts类型的关系信息。包括:

  • 父页面和子页面
  • 修订和与此相关的post
  • 附件和被上传到的post

你可以在你的查询中用不同的方法使用`post_parent`字段。比如查询一个给定页面的父页面,你可以使用下面的方法,这里的`ID`是父页面的ID:

1
'post_parent' => 'ID'

‘post_parent’ => ‘ID’

你也可以使用一个相似的查询来显示所有上传到给定post的附件,或者作为代替,你可以查询那些没有父元素的附件(即是通过仪表盘的媒体界面直接上传的附件)。

为实现这个,你可以使用下面的代码:

1
'post_parent' => '0'

‘post_parent’ => ‘0’

有很大的可能性是你永远你都不会查询修订,因为你只想要用户查看发布的内容。

你还可以使用一个值为ID数组的`post_parent_in`得到一系列文章和页面的子元素。

总结

理解`wp_post`表和它存储的内容对于理解WordPress数据库是很重要的一部分。如你看到的,`wp_post`用来存储posts,它包含5种内置的post类型(包括文章Post)和任意数量的你自己添加的自定义post类型。

这个表还在`post_parent`字段存储post之间关系的数据。

原文出自:http://code.tutsplus.com/tutorials/understanding-and-working-with-posts-in-wordpress–cms-21032

阅读该系列的其他文章: 上一篇:理解和利用 WordPress 中的用户数据 下一篇:理解和利用 WordPress 中的元数据(Metadata)

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 理解和利用 WordPress 中的posts表
分享到: 更多 (0)