最近有機會接觸了一下wordpress,在修改某些資料來源和資料庫結構的時候著實遇到了不少困難,寫下來給大家分享下。
先說一下,我用的是2.5版本。不過個人覺得資料結構分析其實差不多。
資料表結構:
wp_options
:儲存wordpress系統選項和外掛程式、主題配置
wp_postmeta
:儲存文章(包括頁面、上傳檔案、修訂)的元資料
wp_posts
:儲存文章(包括頁面、上傳檔案、修訂)
wp_terms
:儲存每個目錄、標籤
wp_term_relationships
:儲存每個文章、鏈結和對應分類的關係
wp_term_taxonomy
:儲存每個目錄、標籤所對應的分類
wp_usermeta
:儲存使用者的元資料
wp_users
:儲存使用者
資料表總體結構圖:
按照功能大致分為五類。
wp_posts
作為乙個部落格系統,最核心的當然是博主發表的一些「文章」了,這些「文章」存放的地方就是這個 wp_posts 表了。注意,這裡所說的「文章」是加引號的,因為這個表裡存放的除了普通的文章之外,還有附件和頁面(page)的一些資訊。表裡面的 post_type 這個字段就是用來標示型別的。還有一點需要注意的就是,這個表裡一些欄位是針對於 post_type 的特定型別的,比如 menu_order 這個欄位是「頁面(page)」特有的,用來指定「頁面」的順序。post_mime_type 是針對附件的,來指定附件的型別。
wp_postmeta
每篇文章的屬性是不可能僅僅用 wp_posts 表裡的那幾個欄位來完全標示的,往往還有一些因人而異的屬性:寫這篇文章時候的心情,地點等等。這些屬性的名稱和值型別都是不確定的,因 此,wordpress 採用了元資訊(meta)來表示它們。這個表很簡單,只有 meta_id, post_id, meta_key, meta_value 這四個字段。post_id 是相關 post 的 id。我們注意到 meta_value 是 longtext 型別的,這裡僅是用來儲存值,至於值的確切型別,需要程式設計師來關心。
在撰寫文章的時候,我們可以發現編輯框下面有乙個 custom fields 的選項,我們可以在這裡新增 post 的 meta 資訊。
wp_commentswp_users
使用者帳號表。儲存使用者名稱、密碼還有一些使用者的基本資訊。
wp_usermeta
類似上面的 wp_postmeta,儲存一些因人而異的使用者資訊。(比如qq?icq?)
wp_options
用來記錄 wordpress 的一些設定和選項。裡面有乙個 blog_id 字段,這個應該是用在 mu 版裡面來標示不同的 blog 的。
wp_links
用來儲存 blogroll 裡面的鏈結。
wp_terms
wp_term_relationships
wp_term_taxonomy
這三個表是這裡面關係最複雜的了,在 wordpress 2.2 及以前的版本中是沒有這三個表的,代之的是 wp_categories、wp_post2cat 和 wp_link2cat 這三個表。對比這兩個版本我們可以發現:在 2.2 版和之前的版本,post 和 link 和 category 的關係都是通過各自單獨的表來記錄的。而在 2.3 版中加入了 tag 的支援,wordpress 把 post、link、tag 的分類都抽象成了統一的形式,用新的三個表來記錄這些資訊。
wp_terms
記錄分類,鏈結分類,標籤的一些簡要資訊,包括名稱,縮寫。
wp_term_taxonomywp_term_relationships
關係表,多對多的,object_id是與不同的物件關聯,例如wp_posts中的id(wp_links中的link_id)等,term_taxonomy_id就是關聯wp_term_taxonomy中的term_taxonomy_id。
還有一些欄位我還不太清楚是有什麼用的,例如:
wp_term_relationships中的term_order;
wp_terms中的term_group,wp_option中的一些值作用等等,在以後學習的過程中再作詳細的講解吧,如果大家知道的,也可以告訴我。
慶幸的是,關於term的使用,wordpress中相關函式的使用方法還是比較清晰明了,我們就沒必要糾結於它的構造了。
初識WordPress資料庫
wordpress由乙個簡單的部落格平台起步,歷經十餘年,演變為乙個被眾多新手和專家樂於使用的內容管理系統,甚至很多高階 也是基於此平台建設,它能整合和實現幾乎你能想到的絕大數功能。最大的優點是wordpress的安裝 配置 資料庫的建立等,不需要使用者具備程式設計知識或者基礎理論。但是,有些時候你...
WordPress 資料庫結構及表字段作用解析
對於wordpress的開發可以說子凡已經是如痴如醉了,通過 wordpress 本身的開放性介面可以做到很多的事情,但是有些時候我們可能更喜歡直接查詢資料庫來實現某些 wordpress 沒有提供的函式來實現目的,所以這時候我們就需要對wordpress 資料庫的結構和字段作用需要了解,這樣才有利...
wordpress資料庫跨庫轉移
背景 wordpress安裝時資料庫指定不正確,導致 上的資料都放到了mysql這個系統庫中。mysql show tables from mysql tables in mysql columns priv db event func general log help category help ...