wordpress数据表结构解析

十度 wordpress 2015年12月20日 收藏

wordpress数据表介绍

要对wordpress进行二次开发,就不能不清楚wordpress数据表结构,wordpress总共有十一张表,各个表的用途如下:

  • wp_commentmeta 每条评论的特性信息被称为元数据
  • wp_comments:WordPress中的评论
  • wp_links wp_links 保存包含在WordPress Links feature部分的链接的相关信息。
  • wp_options 管理 设置面板下的选项存储在wp_options表里。
  • wp_postmeta 每篇文章的特性信息被称为元数据,它存储在wp_postmeta. 有些插件可能会添加他们自己的信息到这个表里.
  • wp_posts 数据的核心是文章,它存储在wp_posts表.
  • wp_terms 文章和链接分类以及文章的tag分类可以在wp_terms表里找到.
  • wp_term_relationships 与文章有关的分类、来自wp_terms表的tags以及这一关联存在于wp_term_relationships表里. 链接与各自分类的联系也存储于这张表中.
  • wp_term_taxonomy 这张表描述了wp_terms表中每个条目的分类系统 (分类,链接,或tag).
  • wp_usermeta 每个用户的特性信息称为元数据,它存储在wp_usermeta.
  • wp_users 用户列表存在于wp_users表.

wordpress数据表字段说明

wp_commentmeta

  • meta_id:自增唯一ID
  • comment_id:对应评论ID
  • meta_key:键名
  • meta_value:键值

wp_comments

  • comment_ID:自增唯一ID
  • comment_post_ID:对应文章ID
  • comment_author:评论者
  • comment_author_email:评论者邮箱
  • comment_author_url:评论者网址
  • comment_author_IP:评论者IP
  • comment_date:评论时间
  • comment_date_gmt:评论时间(GMT+0时间)
  • comment_content:评论正文
  • comment_karma:未知
  • comment_approved:评论是否被批准
  • comment_agent:评论者的USER AGENT
  • comment_type:评论类型(pingback/普通)
  • comment_parent:父评论ID
  • user_id:评论者用户ID(不一定存在)

wp_links

  • link_id:自增唯一ID
  • link_url:链接URL
  • link_name:链接标题
  • link_image:链接图片
  • link_target:链接打开方式
  • link_description:链接描述
  • link_visible:是否可见(Y/N)
  • link_owner:添加者用户ID
  • link_rating:评分等级
  • link_updated:未知
  • link_rel:XFN关系
  • link_notes:XFN注释
  • link_rss:链接RSS地址

wp_options

  • option_id:自增唯一ID
  • blog_id:博客ID,用于多用户博客,默认0
  • option_name:键名
  • option_value:键值
  • autoload:在WordPress载入时自动载入(yes/no)

wp_postmeta

  • meta_id:自增唯一ID
  • post_id:对应文章ID
  • meta_key:键名
  • meta_value:键值

wp_posts

  • ID:自增唯一ID
  • post_author:对应作者ID
  • post_date:发布时间
  • post_date_gmt:发布时间(GMT+0时间)
  • post_content:正文
  • post_title:标题
  • post_excerpt:摘录
  • post_status:文章状态(publish/auto-draft/inherit等)
  • comment_status:评论状态(open/closed)
  • ping_status:PING状态(open/closed)
  • post_password:文章密码
  • post_name:文章缩略名
  • to_ping:未知
  • pinged:已经PING过的链接
  • post_modified:修改时间
  • post_modified_gmt:修改时间(GMT+0时间)
  • post_content_filtered:未知
  • post_parent:父文章,主要用于PAGE
  • guid:未知
  • menu_order:排序ID
  • post_type:文章类型(post/page等)
  • post_mime_type:MIME类型
  • comment_count:评论总数

wp_terms

  • term_id:分类ID
  • name:分类名
  • slug:缩略名
  • term_group:未知

wp_term_relationships

  • object_id:对应文章ID/链接ID
  • term_taxonomy_id:对应分类方法ID
  • term_order:排序

wp_term_taxonomy

  • term_taxonomy_id:分类方法ID
  • term_id:taxonomy:分类方法(category/post_tag)
  • description:未知
  • parent:所属父分类方法ID
  • count:文章数统计

wp_usermeta

  • umeta_id:自增唯一ID
  • user_id:对应用户ID
  • meta_key:键名
  • meta_value:键值

wp_users

  • ID:自增唯一ID
  • user_login:登录名
  • user_pass:密码
  • user_nicename:昵称
  • user_email:Email
  • user_url:网址
  • user_registered:注册时间
  • user_activation_key:激活码
  • user_status:用户状态
  • display_name:显示名称

wordpress数据关联说明

在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中相关函数的使用方法还是比较清晰明了,我们就没必要纠结于它的构造了。