當前位置:首頁>WordPress建站>WordPress開發(fā)>理解和利用 WordPress 中的數(shù)據(jù)(介紹)

理解和利用 WordPress 中的數(shù)據(jù)(介紹)

一個WordPress站點至少包含如下三個主要元素:

  1. WordPress本身
  2. wp-content目錄的內(nèi)容,包括:主題(themes)、插件(plugins)和上傳目錄(uploads)
  3. 數(shù)據(jù)庫,所有的內(nèi)容都會保存在這里

大多數(shù)WordPress用戶從來沒有直接查看過數(shù)據(jù)庫,甚至都從來不知道它的存在。當WordPress提供任何頁面時,可能是首頁,一篇文章或者是歸檔,它都會去訪問數(shù)據(jù)庫并獲取作者和管理員添加到站點的內(nèi)容。

在這個系列的教程中我將會從不同角度對WordPress的數(shù)據(jù)庫進行講解。這個系列包含如下九個部分:

  1. 介紹
  2. 數(shù)據(jù)之間的關系
  3. 內(nèi)容類型
  4. 用戶數(shù)據(jù)
  5. 元(Meta)數(shù)據(jù)
  6. 自定義分類法(Taxonomies),分類,標簽和分類項目(terms)
  7. 自定義分類法與文章元數(shù)據(jù)對比
  8. 選項設置表
  9. 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ù)庫表以及它們之間的關系:

working-with-data-in-wordpress-introduction-database-tables

大多數(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)載和采用本譯文。

聲明:本站所有文章,如無特殊說明或標注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關注WordPress大學公眾號 WPDAXUE
WordPress開發(fā)

通過 WordPress 多媒體上傳組件保存圖片

2016-2-29 10:48:22

WordPress開發(fā)

理解和利用 WordPress 中的數(shù)據(jù)關系

2016-4-11 8:01:00

2 條回復 A文章作者 M管理員
  1. ydwake

    希望開發(fā)這里的內(nèi)容可以按照專題分一下,這樣閱讀起來會舒服很多,每次過來要重新找來看也方便。

    • 網(wǎng)站編輯

      非常感謝你的建議,一直非常忙,還沒時間折騰主題

?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

同心县| 博客| 松江区| 札达县| 蓬莱市| 河池市| 镇赉县| 张家界市| 营山县| 景泰县| 吉水县| 广德县| 繁峙县| 保定市| 二手房| 文昌市| 汕尾市| 桂东县| 滨州市| 瑞安市| 五原县| 裕民县| 雷山县| 新泰市| 浦江县| 西乡县| 涪陵区| 连江县| 汽车| 昭觉县| 婺源县| 通河县| 鄯善县| 阿克陶县| 赤水市| 从江县| 理塘县| 兴城市| 花莲县| 禹城市| 利辛县|