一個WordPress站點至少包含如下三個主要元素:
- WordPress本身
- wp-content目錄的內(nèi)容,包括:主題(themes)、插件(plugins)和上傳目錄(uploads)
- 數(shù)據(jù)庫,所有的內(nèi)容都會保存在這里
大多數(shù)WordPress用戶從來沒有直接查看過數(shù)據(jù)庫,甚至都從來不知道它的存在。當WordPress提供任何頁面時,可能是首頁,一篇文章或者是歸檔,它都會去訪問數(shù)據(jù)庫并獲取作者和管理員添加到站點的內(nèi)容。
在這個系列的教程中我將會從不同角度對WordPress的數(shù)據(jù)庫進行講解。這個系列包含如下九個部分:
- 介紹
- 數(shù)據(jù)之間的關系
- 內(nèi)容類型
- 用戶數(shù)據(jù)
- 元(Meta)數(shù)據(jù)
- 自定義分類法(Taxonomies),分類,標簽和分類項目(terms)
- 自定義分類法與文章元數(shù)據(jù)對比
- 選項設置表
- WordPress 多站點數(shù)據(jù)
在介紹篇,我將會給出一個概覽,關于數(shù)據(jù)庫表以及內(nèi)容類型的關聯(lián)——你可能在WordPress開發(fā)中用到,是如何存儲的。
WordPress 中的內(nèi)容類型
為了理解具體內(nèi)容,你需要先了解它們在數(shù)據(jù)庫中是如何存儲的。在WordPress中有很多內(nèi)容:
- 文章
- 頁面
- 自定義文章類型
- 附件
- 鏈接
- 導航菜單項 (作為單獨的文章被保存)
這些內(nèi)容類型會被附加一些數(shù)據(jù):
- 分類
- 標簽
- 自定義分類法和分類項目
- 文章元數(shù)據(jù)
此外,還有其他類型的內(nèi)容是作為不同的方式來存儲的:
- 小工具
- 選項
- 用戶
- 站點(多站點才有)
- 硬編碼內(nèi)容(主題或插件中)
- 來自其他地方的內(nèi)容(通過反饋、流或者其他技術的第三方內(nèi)容)
所有的這些內(nèi)容都保存在數(shù)據(jù)庫中的某個地方(或者在主題或者插件中,關于這點我將會展示)。它們可能是一條記錄或者是其他的一部分(例如被編碼到文章中的流式內(nèi)容)。它們也可能是被其他表所引用的數(shù)據(jù)。例如,有關用戶的數(shù)據(jù)會被關聯(lián)到文章中,這樣WordPress就會知道是誰編寫的。
WordPress 的數(shù)據(jù)庫結(jié)構
WordPress使用一些數(shù)據(jù)庫表來存儲它們之間的關系——采用一對多的關系。這意味著,一個用戶可以有很多文章,而且都會關聯(lián)到他們的記錄中。這樣可以節(jié)省空間——如果WordPress為每個用戶都保存一份數(shù)據(jù)而不是每篇文章,就會需要很多數(shù)據(jù)而且占用很多空間。
下面的圖選自 WordPress codex,它展示了數(shù)據(jù)庫表以及它們之間的關系:

大多數(shù)表都是通過一個子段來關聯(lián)到其他的一個或者多個表。這些子段都是每一條記錄的唯一標示,例如:post_id。更詳細的內(nèi)容請看下表:
| Table | Data stored | Linked to |
|---|---|---|
wp_posts |
文章,頁面,附件,版本和菜單導航項 | wp_postmeta (via post_id)wp_term_relationships(via post_id) |
wp_postmeta |
每篇文章的元數(shù)據(jù) | wp_posts (via post_id) |
wp_comments |
評論 | wp_posts (via post_id) |
wp_commentmeta |
評論的元數(shù)據(jù) | wp_comments (via comment_id) |
wp_term_relationships |
文章和分類法的關系 | wp_posts (via post_id)wp_term_taxonomy (via term_taxonomy_id) |
wp_term_taxonomy |
分類法(包括分類和標簽) | wp_term_relationships (via term_taxonomy_id) |
wp_terms |
你的分類、標簽和分配到自定義分類法的分類項目 | wp_term_taxonomy (via term_id) |
wp_links |
博客中的鏈接 | wp_term_relationships (via link_id) |
wp_users |
用戶 | wp_posts (via post_author) |
wp_user_meta |
每個用戶的元數(shù)據(jù) | wp_users (via user_id) |
wp_options |
站點的設置選項(通過設置界面、主題和插件添加的) | n/a |
還有一些需要注意的事情:
- 數(shù)據(jù)庫表默認使用 wp_ 前綴。你可以通過配置你的站點來改變,但這么做沒有什么意義。
- wp_posts 是核心表,你的大多數(shù)數(shù)據(jù)都在這里保存。它幾乎把所有的內(nèi)容的組織在一起。
- 只有一個表是和其他表沒有關系的—— wp_options。這個表保存著站點和 WordPress 安裝信息,這些內(nèi)容沒有和文章或者用戶有關聯(lián)。
- 有兩個表是存儲有關分類方法的——這一點將會在該系列后續(xù)的文章中解釋。
- wp_users 和wp_comments表是沒有關聯(lián)的——盡管用戶可能會需要注冊才能發(fā)表評,WordPress 沒有真正地保存關于每個用戶的評論以及誰發(fā)布的。
- 一個多站點安裝將會有一些擴展表。這里沒有包含這些內(nèi)容,因為已經(jīng)超出了這個系列的內(nèi)容。
內(nèi)容和數(shù)據(jù)庫表的關系
已經(jīng)看過了WordPress中的內(nèi)容類型和存儲它們的數(shù)據(jù)庫表,這個有助于我們把它們關聯(lián)起來。下面的表展示了每個表存儲的內(nèi)容類型。
| Content Type | Table(s) |
|---|---|
| 文章 | wp_posts |
| 頁面 | wp_posts |
| 自定義文章類型 | wp_posts |
| 附件 | wp_posts |
| 鏈接 | wp_links |
| 導航菜單項目 | wp_posts |
| 分類 | wp_terms |
| 標簽 | wp_terms |
| 自定義分類法 | wp_term_taxonomy |
| 分類法項目 | wp_terms |
| 文章元數(shù)據(jù) | wp_post_meta |
| 小工具 | wp_options |
| 選項 | wp_options |
| 用戶 | wp_users |
| 硬編碼內(nèi)容 | wp_posts (如果添加到文章中)wp_options (如果添加到小工具中)主題和插件文件(如果是硬編碼) |
| 第三方內(nèi)容 | wp_posts (如果添加到文章中)wp_options (如果是小工具或插件添加的)主題和插件文件(如果是硬編碼) |
你可能已經(jīng)注意到了不是所有的數(shù)據(jù)庫表都包含在了上面。那是因為它們是用來保存元數(shù)據(jù)和其他用來保存關系的,這些內(nèi)容將會在該系列的后續(xù)內(nèi)容中講到。
總結(jié)
希望您現(xiàn)在對于WordPress是如何使用數(shù)據(jù)庫結(jié)構來保存不同類型內(nèi)容的。這個系列將會關于這方面的所有細節(jié)。
在下一部分中,我將會解釋數(shù)據(jù)之間的關系,以及表之間的關系以及關系是如何保存的細節(jié)內(nèi)容。
原文出自:http://code.tutsplus.com/tutorials/understanding-and-working-with-data-in-wordpress–cms-20567
由 surenpi.com@wordpress大學 原創(chuàng)翻譯,未經(jīng)允許,禁止轉(zhuǎn)載和采用本譯文。
您已閱讀完《理解和利用 WordPress 中的數(shù)據(jù)(共9篇)》專題的第 1 篇。請繼續(xù)閱讀該專題下面的文章:






希望開發(fā)這里的內(nèi)容可以按照專題分一下,這樣閱讀起來會舒服很多,每次過來要重新找來看也方便。
非常感謝你的建議,一直非常忙,還沒時間折騰主題