wordpress表結構

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   使用   os   io   

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

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
使用者帳號表。儲存使用者名稱、密碼還有一些使用者的基本資料。

wp_usermeta
類似上面的 wp_postmeta,儲存一些其他的使用者資訊。

wp_options
用來記錄Wordpress的一些設定和選項。裡面有一個blog_id欄位,這個應該是用在MU版裡面來標示不同的 Blog 的。autoload這個欄位用來控制是否選項總是被WordPress或者外掛程式匯入並緩衝來使用,或者是否只是在要求的情況下才被匯入。

wp_links
用來儲存 Blogroll 裡面的連結。

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

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)值。

 

轉:http://www.oschina.net/question/163913_32508

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.