WordPress数据结构分析(参考资料汇总)

参考资料一

WordPress仅仅用了10 个表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms, wp_usermeta, wp_users。

按照功能大致分为五类

  • 用户信息:wp_users、wp_usermeta
  • 链接信息:wp_links
  • 文章及评论信息:wp_posts、wp_postmeta、wp_comments
  • 对分类,链接分类,标签管理:wp_term、wp_term_relationships、wp_term_taxonomy
  • 全局设置信息:wp_options

1. wp_posts

博客发表“文章”存放的地方就是这个wp_posts表了。这个表里存放的除了普通的文章之外,还有附件和页面(page)的一些信息。 post_type字段是用来区分文章类型的。如果post_type是“post”,那么就是文章,如果是“page”,那么就是页面,如果是“attachment”,那么就是附件了。

2. wp_postmeta

这个表很简单,只有meta_id, post_id, meta_key, meta_value这四个字段。post_id是相关 “文章” 的id。meta_value 是longtext类型的,这里仅是用来存储值。在撰写文章的时候,在编辑框下面有一个Custom Fields的选项,我们可以在这里添加post的meta信息。

3. wp_comments

比较重要的两个字段是 comment_post_ID 和 comment_approved,前一个用来指示这条评论隶属于哪一篇文章,后一个用来记录审核状况。还有一个比较有意思的是这个commnet_agent字段,可以利用这个字段来统计一下用户浏览器类型。

4. wp_users

用户帐号表。存储用户名、密码还有一些用户的基本信息。

5. wp_usermeta

类似上面的 wp_postmeta,存储一些其他的用户信息。

6. wp_options

用来记录Wordpress的一些设置和选项。里面有一个blog_id字段,这个应该是用在MU版里面来标示不同的 Blog 的。autoload这个字段用来控制是否选项总是被WordPress或者插件导入并缓存来使用,或者是否只是在要求的情况下才被导入。

7. wp_links

用来存储Blogroll里面的链接。

8. wp_terms

它保存(term)的基本信息。name 就是 term 的名字,slug 是用于使得 URL 友好化。term_group 是用于把相似的 terms 集合在一起。term_id 是term的唯一ID。

9. wp_term_taxonomy

分类信息,是对wp_terms中的信息的关系信息补充,有所属类型(category,link_category,tag),详细描述所拥有文章(链接)数量。

10. wp_term_relationships

把posts和links这些对象和term_taxonomy表中的term_taxonomy_id联系起来的关系表,object_id是与不同的对 象关联,例如wp_posts中的ID(wp_links中的link_id)等,term_taxonomy_id就是关联 wp_term_taxonomy中的term_taxonomy_id。

参考资料二

WordPress使用MySQL数据库。作为一个开发者,我们有必要掌握WordPress数据库的基本构造,并在自己的插件或主题中使用他们。

在WordPress3.0,WordPress一共有以下11个表。这里加上了默认的表前缀 wp_ 。

  • wp_commentmeta:存储评论的元数据
  • wp_comments:存储评论
  • wp_links:存储友情链接(Blogroll)
  • wp_options:存储WordPress系统选项和插件、主题配置
  • wp_postmeta:存储文章(包括页面、上传文件、修订)的元数据
  • wp_posts:存储文章(包括页面、上传文件、修订)
  • wp_terms:存储每个目录、标签
  • wp_term_relationships:存储每个文章、链接和对应分类的关系
  • wp_term_taxonomy:存储每个目录、标签所对应的分类
  • wp_usermeta:存储用户的元数据
  • wp_users:存储用户

在WordPress的数据库结构中,存储系统选项和插件配置的wp_options表是比较独立的结构,在后文中会提到,它采用了key-value模式存储,这样做的好处是易于拓展,各个插件都可以轻松地在这里存储自己的配置。

post,comment,user 则是三个基本表加上拓展表的组合。以wp_users为例,wp_users已经存储了每个用户会用到的基本信息,比如 login_name、display_name、 password、email等常用信息,但如果我们还要存储一些不常用的数据,最好的做法不是去在表后加上一列,去破坏默认的表结构,而是将数据存在 wp_usermeta中。wp_usermeta这个拓展表和wp_options表有类似的结构,我们可以在这里存储每个用户的QQ号码、手机号码、 登录WordPress后台的主题选项等等。

比较难以理解的是term,即wp_terms、wp_term_relationships、wp_term_taxonomy。在 WordPress的系统里,我们常见的分类有文章的分类、链接的分类,实际上还有TAG,它也是一种特殊的分类方式,我们甚至还可以创建自己的分类方 法。WordPress 将所有的分类及分类方法、对应结构都记录在这三个表中。wp_terms记录了每个分类的名字以及基本信息,如本站分为“WordPress开发”、 “WPCEO插件”等,这里的分类指广义上的分类,所以每个TAG也是一个“分类”。wp_term_taxonomy记录了每个分类所归属的分类方法, 如“WordPress开发”、“WPCEO插件”是文章分类(category),放置友情链接的“我的朋友”、“我的同事”分类属于友情链接分类 (link_category)。wp_term_relationships记录了每个文章(或链接)所对应的分类方法。

庆幸的是,关于term的使用,WordPress中相关函数的使用方法还是比较清晰明了,我们就没必要纠结于它的构造了。

您可以选择一种方式赞助本站

支付宝转账赞助

支付宝扫一扫赞助

  • 版权声明:本文源自互联网,于3年前,由澳门网上真人博彩整理发表,共 10820字。
  • 原文链接:

「评论总计:6 条」「访客:3 条」「站长:3 条」

  1. avatar

    不错,可以随时查看捣鼓,已分享。

  2. avatar

    这些基础的东西还是需要掌握的,掌握之后才能更好地折腾WordPress

  3. avatar

    看不懂,看着这么代码就烦躁

    • avatar 澳门网上真人博彩

      @Sawyer  这个,严格说其实不算代码,叫做“名称”更合适吧,只不过是英文的,没有中文看着那么舒服……

评论加载中...

发表评论