找回密码
 免费注册

分析WordPress数据表之文章表(功能篇)

[复制链接]
admin 发表于 2020-10-11 14:44:15 | 显示全部楼层 |阅读模式
表字段如下:
ID(文章ID)
post_author(文章作者名,我想可以是为用户名,也可以是用户ID)
post_date(文章发布日期)
post_date_gmt(文章发布日期,格林威治时间)
post_content(文章内容)
post_title(文章标题)
post_exerpt(摘录)
post_status(文章状态,publish/auto-draft/inherit)
comment_status(是否开启评论,默认值为open,打开)
ping_status
post_password(文章密码,如果加密的话,需要输入对应的密码才能打开)
post_name(文章缩略名)
to_ping(ping的链接)
pinged(已经PING过的链接)
post_modified(文章修改时间)
post_modified_gmt(文章修改时间,格林威治时间)
post_content_filter
post_parent(父文章,主要用于page)
guid
menu_order(排序ID)
post_type(文章类型,post或page)
post_mime_type(MIME类型)
comment_count(文章评论总数)

wp_postmeta(文章元数据)
表字段分析:
meta_id(文章元数据自增ID)
post_id(文章ID)
meta_key(元数据键)
meta_value(元数据值)

回复

使用道具 举报

 楼主| admin 发表于 2020-10-11 14:45:24 | 显示全部楼层
WordPress中的post类型 WordPress有5种内置的 post 类型 :
  • 文章(Post)
  • 页面(Page)
  • 附件(Attachment)
  • 修订版本(Revision)
  • 导航菜单项(Navigation Menu Item)

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

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

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

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


回复

使用道具 举报

 楼主| admin 发表于 2020-10-11 14:45:41 | 显示全部楼层
我们来快速学习下每一种内置的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类型都有自己的接口。
回复

使用道具 举报

 楼主| admin 发表于 2020-10-11 14:48:07 | 显示全部楼层
posts之间的关系

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

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


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

  1. 'post_parent' => 'ID'
复制代码

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

  1. 'post_parent' => '0'
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-15 08:51 , Processed in 0.094225 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表