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中相關函數的使用方法還是比較清晰明了,我們就沒必要糾結于它的構造了。

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: