WordPress數據庫及各表結構

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:顯示名稱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章