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中各個表的字段,折騰WordPress必備良品~
wp_categories: 用於保存分類相關信息的表。包括了5個字段,分別是:
- cat_ID – 每一個分類惟一的ID號,爲一個bigint(20)值,且帶有附加屬性auto_increment。
- cat_name – 某個分類的名稱,爲一個varchar(55)值。
- category_nicename – 指定給分類的一個便於記住的名字,也就是所謂的slug,這是一個varchar(200)值。
- category_description – 某個分類的詳細說明,longtext型值。
- category_parent – 分類的上級分類,爲一個int(4)值,對應是的當前表中的cat_ID,即wp_categories.cat_ID。無上級分類時,這個值爲0。
wp_comments: 用於保存評論信息的表。包括了15個字段,分別爲:
- comment_ID – 每一個評論的惟一ID號,是一個bigint(20)值。帶有附加屬性auto_increment。
- comment_post_ID – 每一個評論對應的文章的ID號,int(11)值,等同於wp_posts.ID。
- comment_author – 每一個評論的評論者名稱,tinytext值。
- comment_author_email – 每一個評論的評論者電郵地址,varchar(100)值。
- comment_author_url – 每一個評論的評論者網址,varchar(200)值。
- comment_author_IP – 每一個評論的評論者的IP地址,varchar(100)值。
- comment_date – 每一個評論發表的時間,datetime值(是加上時區偏移量後的值)。
- comment_date_gmt – 每一個評論發表的時間,datetime值(是標準的格林尼治時間)。
- comment_content – 每一個評論的具體內容,text值。
- comment_karma – 不詳,int(11)值,默認爲0。
- comment_approved – 每一個評論的當前狀態,爲一個枚舉值enum(’0′,’1′,’spam’),0爲等待審覈,1爲容許發佈,spam爲垃圾評論。默認值爲1。
- comment_agent – 每一個評論的評論者的客戶端信息,varchar(255)值,主要包括其瀏覽器和操做系統的類型、版本等資料。
- comment_type – 不詳,varchar(20)值。
- comment_parent – 某一評論的上級評論,int(11)值,對應wp_comment.ID,默認爲0,即無上級評論。
- user_id – 某一評論對應的用戶ID,只有當用戶註冊後纔會生成,int(11)值,對應wp_users.ID。未註冊的用戶,即外部評論者,這個ID的值爲0。
wp_linkcategories: 用於保存在WP後臺中添加的連接的相關信息的表。包括13個字段:
- cat_id – 每一個連接分類的惟一ID,bigint(20)值,爲一個自增量auto_increment。
- cat_name – 每一個連接分類的名字,tinytext值。
- auto_toggle -這個字段所包含的是一個比較特別的屬性。若是爲Y,則當該分類中加入了新連接時,其它的連接會變爲不可見。它是一個枚舉型的值enum(’Y’,’N’),默認爲N。
- show_images – 該字段也是枚舉值enum(’Y’,’N’),默認爲Y。用戶指定是否容許在該連接分類顯示圖片連接。
- show_description – 該字段指定相應的連接分類下的連接,是否再專門[換行]顯示它們的說明,這是一個枚舉型值enum(’Y’,’N’),默認爲N,即不顯示說明(但會經過title屬性中顯示說明)。
- show_rating – 顯示該分類下連接的等級。它也是一個枚舉值enum(’Y’,’N’),默認爲Y。此時,你能夠用連接等級的方式來對該連接分類下的連接進行排序。
- show_updated – 指定該連接分類有更新是,是否進行顯示,枚舉值enum(’Y’,’N’),默認爲Y。
- sort_order – 指定該連接分類中連接的排序依據,varchar(64)值。通常用連接的名字(name,即wp_links.link_name)或ID(id,即wp_links.link_id)。
- sort_desc – 指定連接分類的排序方式,枚舉值enum(’Y’,’N’),默認爲N,即用降序。
- text_before_link – 該連接分類下每一個連接的前置html文本,varchar(128)值,默認是’列表開始標籤’。
- text_after_link – 該連接分類下每一個連接的中,連接與說明文字(wp_links.link_description)之間的html文本,varchar(128)值,默認是’換行標籤’。
- text_after_all – 該連接分類下每一個連接的後置html文本,varchar(128)值,默認是’列表結束標籤’。
- list_limit – 用於規定某一連接分類中顯示的(可設定的?)連接的個數,int(11)值,默認爲-1,即對連接分類下連接的個數無限制。
wp_links :用於保存用戶輸入到Wordpress中的連接(經過Link Manager)的表。共14個字段:
- link_id – 每一個連接的惟一ID號,bigint(20)值,附加屬性爲auto_increment。
- link_url – 每一個連接的URL地址,varchar(255)值,形式爲http://開頭的地址。
- link_name – 單個連接的名字,varchar(255)值。
- link_image – 連接能夠被定義爲使用圖片連接,這個字段用於保存該圖片的地址,爲varchar(255)值。
- link_target – 連接打開的方式,有三種,_blank爲以新窗口打開,_top爲就在本窗口中打開並在最上一級,none爲不選擇,會在本窗口中打開。這個字段是varchar(25)值。
- link_category – 某個連接對應的連接分類,爲int(11)值。至關於wp_linkcategories.cat_id。
- link_description – 連接的說明文字。用戶能夠選擇顯示在連接下方仍是顯示在title屬性中。varchar(255)值。
- link_visible – 該連接是否能夠,枚舉enum(’Y’,’N’)值,默認爲Y,便可見。
- link_owner – 某個連接的建立人,爲一int(11)值,默認是1。(應該對應的就是wp_users.ID)
- link_rating – 連接的等級,int(11)值。默認爲0。
- link_updated – 連接被定義、修改的時間,datetime值。
- link_rel – 連接與定義者的關係,由XFN Creator設置,varchar(255)值。
- link_notes – 連接的詳細說明,mediumtext值。
- link_rss – 該連接的RSS地址,varchar(255)值。
wp_options: 用於保存Wordpress相關設置、參數的表,共11個字段。最重要是的option_value字段,裏面包括了大量的重要信息。
- option_id – 選項的ID,bigint(20)值,附加auto_increment屬性。
- blog_id – 不詳。或許用在單在用戶的WP版本上並不重要吧,或許是針對不一樣用戶的Blog來設置的一個值。int(11)值,默認爲0,即當前blog。
- option_name – 選項名稱,varchar(64)值。
- option_can_override – 該選項是否可被重寫、更新,枚舉enum(’Y’,’N’)值,默認爲Y,便可被重寫、更新。
- option_type – 選項的類型,做用不詳,int(11)值,默認爲1。
- option_value – 選項的值,longtext值,這個字段的內容比較重要。Wordpress初始化時就會設定好約70個默認的值,這裏暫不介紹。
- option_width – 選項的寬(?),做用不詳。int(11)值,默認爲20。
- option_height – 選項的高(?),做用不詳。int(11)值,默認爲8。
- option_description – 針對某個選項的說明,tinytext值。
- option_admin_level – 設定某個選項可被操縱的用戶等級(詳情見個人相關文章),int(11)值,默認爲1。
- autoload – 選項是否每次都被自動加載,枚舉enum(’yes’,’no’)值,默認爲yes。
wp_post2cat: 用於保存文章(posts)與分類(categories)之間的關係的表,只有三個字段:
- rel_id – 關聯ID,bigint(20)值,是個有auto_increment屬性的自增量。
- post_id – 文章的ID,bigint(20)值,至關於wp_posts.ID。
- category_id – 分類的ID,也是bigint(20)值,至關於wp_categories.ID。
文章與分類的關係的造成是這樣的:rel_id是一個不斷增長的自增量,它用於識別每不一樣的post。post_id能夠重複(當它對應多個分類時),由於它可被rel_id識別,因此不會出現混亂。每一個post_id可對應多個category_id時,一個rel_id + post_id組合,能夠識別某一個分類,所以每一個文章的分類能夠是不一樣的。經過這張表,能夠很是快速、高效地找出某篇文章(post)對應了哪些分類 (category),反之亦然。
wp_postmeta: 用於保存文章的元信息(meta)的表,四個字段:
- meta_id – 元信息ID,bigint(20)值,附加屬性爲auto_increment。
- post_id – 文章ID,bigint(20)值,至關於wp_posts.ID。
- meta_key – 元信息的關鍵字,varchar(255)值。
- meta_value – 元信息的值,text值。
這些內容主要是在文章及頁面編輯頁(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。
- post_author – 每篇文章的做者的編號,int(4)值,應該對應的是wp_users.ID。
- post_date – 每篇文章發表的時間,datetime值。它是GMT時間加上時區偏移量的結果。
- post_date_gmt – 每篇文章發表時的GMT(格林威治)時間,datetime值。
- post_content – 每篇文章的具體內容,longtext值。你在後臺文章編輯頁面中寫入的全部內容都放在這裏。
- post_title – 文章的標題,text值。
- post_category – 文章所屬分類,int(4)值。
- post_excerpt – 文章摘要,text值。
- post_status – 文章當前的狀態,枚舉enum(’publish’,’draft’,’private’,’static’,’object’)值,publish爲已發表,draft爲草稿,private爲私人內容(不會被公開) ,static(不詳),object(不詳)。默認爲publish。
- comment_status – 評論設置的狀態,也是枚舉enum(’open’,’closed’,’registered_only’)值,open爲容許評論,closed爲不容許評論,registered_only爲只有註冊用戶方可評論。默認爲open,即人人均可以評論。
- ping_status – ping狀態,枚舉enum(’open’,’closed’)值,open指打開pingback功能,closed爲關閉。默認值是open。
- post_password – 文章密碼,varchar(20)值。文章編輯纔可爲文章設定一個密碼,憑這個密碼才能對文章進行從新強加或修改。
- post_name – 文章名,varchar(200)值。這一般是用在生成permalink時,標識某篇文章的一段文本或數字,也即post slug。
- to_ping – 強制該文章去ping某個URI。text值。
- pinged – 該文章被pingback的歷史記錄,text值,爲一個個的URI。
- post_modified – 文章最後修改的時間,datetime值,它是GMT時間加上時區偏移量的結果。
- post_modified_gmt – 文章最後修改的GMT時間,datetime值。
- post_content_filtered – 不詳,text值。
- post_parent – 文章的上級文章的ID,int(11)值,對應的是wp_posts.ID。默認爲0,即沒有上級文章。
- guid – 這是每篇文章的一個地址,varchar(255)值。默認是這樣的形式: http://your.blog.site/?p=1,若是你造成permalink功能,則一般會是: 你的Wordpress站點地址+文章名。
- menu_order – 不詳,int(11)值,默認爲0。
- post_type – 文章類型,具體不詳,varchar(100)值。默認爲0。
- post_mime_type – 不詳。varchar(100)值。
- comment_count – 評論計數,具體用途不詳,bigint(20)值。
wp_usermeta : 用於保存用戶元信息(meta)的表,共4個字段:
- umeta_id – 元信息ID,bigint(20)值,附加屬性auto_increment。
- user_id – 元信息對應的用戶ID,bigint(20)值,至關於wp_users.ID。
- meta_key – 元信息關鍵字,varchar(255)值。
- meta_value – 元信息的詳細值,longtext值。
wp_users:用於保存Wordpress使用者的相關信息的表。WP官方對2.0.2版本中該表的狀況的說明有些矛盾(稱有22個字段,但詳細的列表中只有11個),因此這裏只能列出11個字段進行說明:
- ID – 用戶惟一ID,bigint(20)值,帶附加屬性auto_increment。
- user_login – 用戶的註冊名稱,varchar(60)值。
- user_pass – 用戶密碼,varchar(64)值,這是通過加密的結果。好象用的是不可逆的MD5算法。
- user_nicename – 用戶暱稱,varchar(50)值。
- user_email – 用戶電郵地址,varchar(100)值。
- user_url – 用戶網址,varchar(100)值。
- user_registered – 用戶註冊時間,datetime值。
- user_level – 用於等級,int(2)值,能夠是0-10之間的數字,不一樣等級有不一樣的對WP的操做權限。
- user_activation_key – 用戶激活碼,不詳。varchar(60)值。
- user_status – 用戶狀態,int(11)值,默認爲0。
- display_name – 來前臺顯示出來的用戶名字,varchar(250)值。