WordPress僅僅用了10 個表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms, wp_usermeta, wp_usershtml
按照功能大體分爲五類
用戶信息: wp_users和wp_usermeta
連接信息: wp_links
文章及評論信息: wp_posts、wp_postmeta、wp_comments
對分類,連接分類,標籤管理: wp_term,wp_term_relationships,wp_term_taxonomy
全局設置信息: wp_options算法
wp_posts
博客發表」文章」存放的地方就是這個wp_posts表了。這個表裏存放的除了普通的文章以外,還有附件和頁面(page)的一些信息。post_type 字段是用來區分文章類型的。若是post_type是’post’,那麼就是文章,若是是’page’,那麼就是頁面,若是是’attachment’, 那麼就是附件了.數據庫
wp_postmeta
這個表很簡單,只有 meta_id, post_id, meta_key, meta_value 這四個字段。post_id 是相關 「文章」 的id。meta_value 是longtext類型的,這裏僅是用來存儲值。在撰寫文章的時候,在編輯框下面有一個 Custom Fields 的選項,咱們能夠在這裏添加post的meta信息。瀏覽器
wp_comments
比較重要的兩個字段是 comment_post_ID 和 comment_approved,前一個用來指示這條評論隸屬於哪一篇文章,後一個用來記錄審覈情況。還有一個比較有意思的是這個 commnet_agent 字段,能夠利用這個字段來統計一下用戶瀏覽器類型。緩存
wp_users
用戶賬號表。存儲用戶名、密碼還有一些用戶的基本信息。app
wp_usermeta
相似上面的 wp_postmeta,存儲一些其餘的用戶信息。ide
wp_options
用來記錄Wordpress的一些設置和選項。裏面有一個blog_id字段,這個應該是用在MU版裏面來標示不一樣的 Blog 的。autoload這個字段用來控制是否選項老是被WordPress或者插件導入並緩存來使用,或者是否只是在要求的狀況下才被導入。wordpress
wp_links
用來存儲 Blogroll 裏面的連接。函數
wp_terms
它保存(term)的基本信息。name 就是 term 的名字,slug 是用於使得 URL 友好化。term_group 是用於把類似的 terms 集合在一塊兒。term_id 是term的惟一ID。post
wp_term_taxonomy
分類信息,是對wp_terms中的信息的關係信息補充,有所屬類型(category,link_category,tag),詳細描述所擁有文章(連接)數量。
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中相關函數的使用方法仍是比較清晰明瞭,咱們就不必糾結於它的構造了。
在上文中咱們已經介紹了WordPress數據庫中各個表的做用,本文將繼續介紹每一個表中每一個列的做用。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_categories: 用於保存分類相關信息的表。包括了5個字段,分別是:
wp_comments: 用於保存評論信息的表。包括了15個字段,分別爲:
wp_linkcategories: 用於保存在WP後臺中添加的連接的相關信息的表。包括13個字段:
wp_links :用於保存用戶輸入到Wordpress中的連接(經過Link Manager)的表。共14個字段:
wp_options: 用於保存Wordpress相關設置、參數的表,共11個字段。最重要是的option_value字段,裏面包括了大量的重要信息。
wp_post2cat: 用於保存文章(posts)與分類(categories)之間的關係的表,只有三個字段:
文章與分類的關係的造成是這樣的:rel_id是一個不斷增長的自增量,它用於識別每不一樣的post。post_id能夠重複(當它對應多個分類時),由於它可被rel_id識別,因此不會出現混亂。每一個post_id可對應多個category_id時,一個rel_id + post_id組合,能夠識別某一個分類,所以每一個文章的分類能夠是不一樣的。經過這張表,能夠很是快速、高效地找出某篇文章(post)對應了哪些分類 (category),反之亦然。
wp_postmeta: 用於保存文章的元信息(meta)的表,四個字段:
這些內容主要是在文章及頁面編輯頁(Write Post, Write Page)的」Add a new custom field to this post(page):」下進行設定的。meta_key就對應名爲」key」的下拉列表中的項,而值由用戶本身填上(某些時候,wp也會自動加入,如文章中有的音頻媒體)。
wp_posts: 用於保存你全部的文章(posts)的相關信息的表,很是的重要。通常來說,它存儲的數據是最多的。一共包括了21個字段。
ID – 每篇文章的惟一ID,bigint(20)值,附加屬性auto_increment。
wp_usermeta : 用於保存用戶元信息(meta)的表,共4個字段:
wp_users:用於保存Wordpress使用者的相關信息的表。WP官方對2.0.2版本中該表的狀況的說明有些矛盾(稱有22個字段,但詳細的列表中只有11個),因此這裏只能列出11個字段進行說明: