如果是一個普通的使用者,不需要了解wordpress資料庫的結構。但是,如果你正在寫一個插件,你應該會對wordpress如何處理它的資料和關系感興趣。如果你已經嘗試使用已經存在的wordpress api 去通路你需要的資料,但不直接通路資料庫的情況下,這是不可能的,WordPress的提供WPDB的類,使這項任務變得簡單。
WordPress資料庫的11個資料表分别是:
表名(點選表名檢視詳細介紹)
描述
wp_commentmeta
文章評論額外資訊表
wp_comments
文章評論資訊表
wp_links
連結資訊表
wp_options
基本配置資訊表,通常通過get_option來操作,該表通常作為插件存儲資料的一個地方。
wp_postmeta
文章額外資料表,例如文章浏覽次數,文章的自定義字段等都存儲在這裡。
wp_posts
文章資訊表,包括了日志、附件、頁面等等資訊。是WordPress最重要的一個資料表。
wp_terms
文章分類、連結分類、标簽的資訊表。
wp_term_relationships
分類與文章資訊表(wp_posts)、連結表(wp_links)的關聯表。
wp_term_taxonomy
分類資訊表,區分wp_terms資訊的分類類型,有category、link_category和tag三種分類類型。
wp_usermeta
使用者額外資訊表
wp_users
使用者基本資訊表。存放系統所有使用者基本資訊。
WordPress資料庫表之間的關系是什麼呢?
要搞明白這個問題以及對WordPress資料表之間的關系有更加深刻的了解,讓我們先來想想WordPress部落格系統的功能,預設安裝的WordPress2.6.2版本部落格系統涉及的資料資訊主要包括了使用者資訊、分類資訊、連結資訊、文章資訊、文章評論資訊、基本配置資訊這6類資訊。
使用者資訊:系統中所有注冊使用者的帳号資訊。
分類資訊:包括了文章分類、連結分類、标簽這3中分類資訊。
連結資訊:就是部落格系統中的友情連結資訊。
文章資訊:部落格系統中的日志、日志産生的附件、頁面等資訊。
文章評論資訊:對具體日志或者附件的評論資訊。
基本配置資訊:系統中的基本配置資訊,例如部落格名稱,部落格位址等等。
WordPress資料庫的11個資料表就是為了存儲以上6類資料資訊而設計,這些表之間的總體關系結構如下圖所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4cjN2AjNxUDNwUjMygTMvwFOwUTMwIzLcNjN4EjMx8CX1EDMyc2bsJ2Lc12bj5ycn9Gbi52YuAzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
從上圖可以看出WordPress部落格系統6類資料資訊分别所涉及的資料表及關系如下表所示:
資訊類型
涉及資料表及關聯關系
使用者資訊
資料表:wp_users、wp_usermeta,關聯關系:wp_users.ID->wp_usermeta.user_id
分類資訊
資料表:wp_terms、wp_term_taxonomy關聯關系:wp_terms.term_id->wp_term_taxonomy.term_id
連結資訊
資料表:wp_links、wp_term_relationships、wp_terms、wp_term_taxonomy、 wp_users、wp_usermeta關聯關系:
一,确定連結所屬分類 (1)wp_links.link_id->wp_term_relationships.object_id, (2)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id
(該關系還要取決與wp_term_taxonomy表中的taxonomy分類類型為“link_category”) (3)wp_terms.term_id->wp_term_taxonom.term_id
二、确定連結所有者 (4)wp_links.link_owner->wp_users.ID(5)wp_users.ID->wp_usermeta.user_id
文章資訊
資料表:wp_posts、wp_postmeta、wp_comments、wp_term_relationships、wp_terms、 wp_term_taxonomy、wp_users、wp_usermeta關聯關系:一、确定文章資訊 (1)wp_posts.ID->wp_postsmeta.post_id
二、确定文章評論 (2)wp_posts.ID->wp_comments.comment_post_id
三、确定文章評論的作者 (3)wp_comments.comment_author->wp_users.ID
(4)wp_users.ID->wp_usermeta.user_id
四、确定文章所屬分類
(5)wp_posts.ID->wp_term_relationships.object_id,
(6)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id
(該關系還要取決與wp_term_taxonomy表中的taxonomy分類類型為“category”或者“tag”)
(7)wp_terms->term_id->wp_term_taxonomy
五、确定文章作者
(8)wp_posts.author->wp_users.ID;
(9)wp_users.ID->wp_usermeta.user_id
文章評論資訊
資料表:wp_comments、wp_posts、wp_users、wp_usermeta關聯關系:
一、确定評論的文章 (1)wp_comments.comment_post_id->wp_posts.ID
二、确定評論的作者 (2)wp_comments.comment_author->wp_users.ID(3)wp_users.ID->wp_usermeta.user_id
基本配置資訊
資料表:wp_options沒有關聯關系
Wp-config.php中關于資料庫的設定。
<a></a>
wp-db.php 包含一個wpdb的類,是資料庫操作API 。産生一個$wpdb的全局變量,是wpdb類的一個對象。挺長的,貼在文章裡太臃腫了。
參考:
<a href="http://wenku.baidu.com/view/6448da5bbe23482fb4da4c94.html?from_page=view&from_mod=download">http://wenku.baidu.com/view/6448da5bbe23482fb4da4c94.html?from_page=view&from_mod=download</a>
<a href="http://codex.wordpress.org/Database_Description">http://codex.wordpress.org/Database_Description</a>
<a href="http://codex.wordpress.org/Database_Description">http://codex.wordpress.org/Function_Reference/wpdb_Class</a>
<a href="http://www.jakc.net/post/272">http://www.jakc.net/post/272</a>
本文轉自黃聰部落格園部落格,原文連結:http://www.cnblogs.com/huangcong/p/4740900.html,如需轉載請自行聯系原作者