红穆笔记
首頁 程序筆記 WordPress MySQL數據庫表和分表結構功能說明
程序筆記 wordpress

WordPress MySQL數據庫表和分表結構功能說明

WordPress MySQL数据库表和分表结构功能说明

WordPress使用MySQL數據庫。數據表結構與常規有些差異,數據內容有常規的以數據表方式記錄,也有以數據元方式記錄,數據元方式在直接查看時不太直觀。

想成爲一個開發者,我們必須掌握WordPress數據庫的基本結構,並在自己的插件或主題中使用他們,寫入或讀出數據。

一、數據表

截至WordPress4.52版本,WordPress一共有以下12個表。這裏加上了默認的表前綴 wp_

  1. ◉ wp_commentmeta:存儲評論的元數據
  2. ◉ wp_comments:存儲評論
  3. ◉ wp_links:存儲友情鏈接
  4. ◉ wp_options:存儲WordPress系統選項和插件、主題配置
  5. ◉ wp_postmeta:存儲文章(包括頁面、上傳文件、修訂)的元數據
  6. ◉ wp_posts:存儲文章(包括頁面、上傳文件、修訂)
  7. ◉ wp_terms:存儲每個目錄、標籤
  8. ◉ wp_termmeta:存儲每個目錄、標籤的ID,key,value
  9. ◉ wp_term_relationships:存儲每個文章、鏈接和對應分類的關係
  10. ◉ wp_term_taxonomy:存儲每個目錄、標籤所對應的分類
  11. ◉ wp_usermeta:存儲用戶的元數據
  12. ◉ wp_users:存儲用戶

二、數據表結構

下面我們再詳細瞭解各個表中的子項

wp_categories:

用於保存分類相關信息的表。包括了5個字段,分別是:
◈ cat_ID – 每個分類唯一的ID號,爲一個bigint(20)值,且帶有附加屬性auto_increment。
◈ cat_name – 某個分類的名稱,爲一個varchar(55)值。
◈ category_nicename – 指定給分類的一個便於記住的名字,也就是所謂的slug,這是一個varchar(200)值。
◈ category_description – 某個分類的詳細說明,longtext型值。
◈ category_parent – 分類的上級分類,爲一個int(4)值,對應是的當前表中的cat_ID,即wp_categories.cat_ID。無上級分類時,這個值爲0。

wp_comments:

用於保存評論信息的表。包括了15個字段,分別爲:
◊ comment_ID – 每個評論的唯一ID號,是一個bigint(20)值。帶有附加屬性auto_increment。
◊ comment_post_ID – 每個評論對應的文章的ID號,int(11)值,等同於wp_posts.ID。
◊ comment_author – 每個評論的評論者名稱,tinytext值。
◊ comment_author_email – 每個評論的評論者電郵地址,varchar(100)值。
◊ comment_author_url – 每個評論的評論者網址,varchar(200)值。
◊ comment_author_IP – 每個評論的評論者的IP地址,varchar(100)值。
◊ comment_date – 每個評論發表的時間,datetime值(是加上時區偏移量後的值)。
◊ comment_date_gmt – 每個評論發表的時間,datetime值(是標準的格林尼治時間)。
◊ comment_content – 每個評論的具體內容,text值。
◊ comment_karma – 不詳,int(11)值,默認爲0。
◊ comment_approved – 每個評論的當前狀態,爲一個枚舉值enum(’0′,’1′,’spam’),0爲等待審覈,1爲允許發佈,spam爲垃圾評論。默認值爲1。
◊ comment_agent – 每個評論的評論者的客戶端信息,varchar(255)值,主要包括其瀏覽器和操作系統的類型、版本等資料。
◊ comment_type – 不詳,varchar(20)值。
◊ comment_parent – 某一評論的上級評論,int(11)值,對應wp_comment.ID,默認爲0,即無上級評論。
◊ user_id – 某一評論對應的用戶ID,只有當用戶註冊後纔會生成,int(11)值,對應wp_users.ID。未註冊的用戶,即外部評論者,這個ID的值爲0。

wp_linkcategories:

用於保存在WP後臺中添加的鏈接的相關信息的表。包括13個字段:
◈ cat_id – 每個鏈接分類的唯一ID,bigint(20)值,爲一個自增量auto_increment。
◈ cat_name – 每個鏈接分類的名字,tinytext值。
◈ auto_toggle -這個字段所包含的是一個比較特別的屬性。如果爲Y,則當該分類中加入了新鏈接時,其它的鏈接會變爲不可見。它是一個枚舉型的值enum(’Y’,’N’),默認爲N。
◈ show_images – 該字段也是枚舉值enum(’Y’,’N’),默認爲Y。用戶指定是否允許在該鏈接分類顯示圖片鏈接。
◈ show_description – 該字段指定相應的鏈接分類下的鏈接,是否再專門[換行]顯示它們的說明,這是一個枚舉型值enum(’Y’,’N’),默認爲N,即不顯示說明(但會通過title屬性中顯示說明)。
◈ show_rating – 顯示該分類下鏈接的等級。它也是一個枚舉值enum(’Y’,’N’),默認爲Y。此時,你可以用鏈接等級的方式來對該鏈接分類下的鏈接進行排序。
◈ show_updated – 指定該鏈接分類有更新是,是否進行顯示,枚舉值enum(’Y’,’N’),默認爲Y。
◈ sort_order – 指定該鏈接分類中鏈接的排序依據,varchar(64)值。一般用鏈接的名字(name,即wp_links.link_name)或ID(id,即wp_links.link_id)。
◈ sort_desc – 指定鏈接分類的排序方式,枚舉值enum(’Y’,’N’),默認爲N,即用降序。
◈ text_before_link – 該鏈接分類下每個鏈接的前置html文本,varchar(128)值,默認是’列表開始標籤’。
◈ text_after_link – 該鏈接分類下每個鏈接的中,鏈接與說明文字(wp_links.link_description)之間的html文本,varchar(128)值,默認是’換行標籤’。
◈ text_after_all – 該鏈接分類下每個鏈接的後置html文本,varchar(128)值,默認是’列表結束標籤’。
◈ list_limit – 用於規定某一鏈接分類中顯示的(可設定的?)鏈接的個數,int(11)值,默認爲-1,即對鏈接分類下鏈接的個數無限制。

wp_links :

用於保存用戶輸入到Wordpress中的鏈接(通過Link Manager)的表。共14個字段:
◊ link_id – 每個鏈接的唯一ID號,bigint(20)值,附加屬性爲auto_increment。
◊ link_url – 每個鏈接的URL地址,varchar(255)值,形式爲http://開頭的地址。
◊ link_name – 單個鏈接的名字,varchar(255)值。
◊ link_image – 鏈接可以被定義爲使用圖片鏈接,這個字段用於保存該圖片的地址,爲varchar(255)值。
◊ link_target – 鏈接打開的方式,有三種,_blank爲以新窗口打開,_top爲就在本窗口中打開並在最上一級,none爲不選擇,會在本窗口中打開。這個字段是varchar(25)值。
◊ link_category – 某個鏈接對應的鏈接分類,爲int(11)值。相當於wp_linkcategories.cat_id。
◊ link_description – 鏈接的說明文字。用戶可以選擇顯示在鏈接下方還是顯示在title屬性中。varchar(255)值。
◊ link_visible – 該鏈接是否可以,枚舉enum(’Y’,’N’)值,默認爲Y,即可見。
◊ link_owner – 某個鏈接的創建人,爲一int(11)值,默認是1。(應該對應的就是wp_users.ID)
◊ link_rating – 鏈接的等級,int(11)值。默認爲0。
◊ link_updated – 鏈接被定義、修改的時間,datetime值。
◊ link_rel – 鏈接與定義者的關係,由XFN Creator設置,varchar(255)值。
◊ vlink_notes – 鏈接的詳細說明,mediumtext值。
◊ link_rss – 該鏈接的RSS地址,varchar(255)值。

wp_options:

用於保存Wordpress相關設置、參數的表,共11個字段。最重要是的option_value字段,裏面包括了大量的重要信息。
◈ option_id – 選項的ID,bigint(20)值,附加auto_increment屬性。
◈ blog_id – 不詳。或許用在單在用戶的WP版本上並不重要吧,或許是針對不同用戶的Blog來設置的一個值。int(11)值,默認爲0,即當前blog。
◈ option_name – 選項名稱,varchar(64)值。
◈ option_can_override – 該選項是否可被重寫、更新,枚舉enum(’Y’,’N’)值,默認爲Y,即可被重寫、更新。
◈ option_type – 選項的類型,作用不詳,int(11)值,默認爲1。
◈ option_value – 選項的值,longtext值,這個字段的內容比較重要。Wordpress初始化時就會設定好約70個默認的值,這裏暫不介紹。
◈ option_width – 選項的寬(?),作用不詳。int(11)值,默認爲20。
◈ option_height – 選項的高(?),作用不詳。int(11)值,默認爲8。
◈ option_description – 針對某個選項的說明,tinytext值。
◈ option_admin_level – 設定某個選項可被操縱的用戶等級(詳情見我的相關文章),int(11)值,默認爲1。
◈ autoload – 選項是否每次都被自動加載,枚舉enum(’yes’,’no’)值,默認爲yes。

wp_postmeta:

用於保存文章的元信息(meta)的表,四個字段:
◊ meta_id – 元信息ID,bigint(20)值,附加屬性爲auto_increment。
◊ post_id – 文章ID,bigint(20)值,相當於wp_posts.ID。
◊ meta_key – 元信息的關鍵字,varchar(255)值。
◊ meta_value – 元信息的值,text值。這些內容主要是在文章及頁面編輯頁(Write Post, Write Page)的”Add a new custom field to this post(page):”下進行設定的。meta_key就對應名爲”key”的下拉列表中的項,而值由用戶自己填上(某些時候,wp也會自動加入,如文章中有的音頻媒體)。

wp_posts:

用於保存你所有的文章(posts)的相關信息的表,非常的重要。一般來講,它存儲的數據是最多的。一共包括了21個字段。
◈ ID – 每篇文章的唯一ID,bigint(20)值,附加屬性auto_increment。
◈ post_author – 每篇文章的作者的編號,int(4)值,應該對應的是wp_users.ID。
◈ post_date – 每篇文章發表的時間,datetime值。它是GMT時間加上時區偏移量的結果。
◈ post_date_gmt – 每篇文章發表時的GMT(格林威治)時間,datetime值。
◈ post_content – 每篇文章的具體內容,longtext值。你在後臺文章編輯頁面中寫入的所有內容都放在這裏。
◈ post_title – 文章的標題,text值。
◈ post_category – 文章所屬分類,int(4)值。
◈ post_excerpt – 文章摘要,text值。
◈ post_status – 文章當前的狀態,枚舉enum(’publish’,’draft’,’private’,’static’,’object’)值,publish爲已發表,draft爲草稿,private爲私人內容(不會被公開) ,static(不詳),object(不詳)。默認爲publish。
◈ comment_status – 評論設置的狀態,也是枚舉enum(’open’,’closed’,’registered_only’)值,open爲允許評論,closed爲不允許評論,registered_only爲只有註冊用戶方可評論。默認爲open,即人人都可以評論。
◈ ping_status – ping狀態,枚舉enum(’open’,’closed’)值,open指打開pingback功能,closed爲關閉。默認值是open。
◈ post_password – 文章密碼,varchar(20)值。文章編輯纔可爲文章設定一個密碼,憑這個密碼才能對文章進行重新強加或修改。
◈ post_name – 文章名,varchar(200)值。這通常是用在生成permalink時,標識某篇文章的一段文本或數字,也即post slug。
◈ to_ping – 強制該文章去ping某個URI。text值。
◈ pinged – 該文章被pingback的歷史記錄,text值,爲一個個的URI。
◈ post_modified – 文章最後修改的時間,datetime值,它是GMT時間加上時區偏移量的結果。
◈ post_modified_gmt – 文章最後修改的GMT時間,datetime值。
◈ post_content_filtered – 不詳,text值。
◈ post_parent – 文章的上級文章的ID,int(11)值,對應的是wp_posts.ID。默認爲0,即沒有上級文章。
◈ guid – 這是每篇文章的一個地址,varchar(255)值。默認是這樣的形式:http://your.blog.site/?p=1,如果你形成permalink功能,則通常會是你的Wordpress站點地址+文章名。
◈ menu_order – 不詳,int(11)值,默認爲0。
◈ post_type – 文章類型,具體不詳,varchar(100)值。默認爲0。
◈ post_mime_type – 不詳。varchar(100)值。
◈ comment_count – 評論計數,具體用途不詳,bigint(20)值。

wp_usermeta :

用於保存用戶元信息(meta)的表,共4個字段:
◊ umeta_id – 元信息ID,bigint(20)值,附加屬性auto_increment。
◊ user_id – 元信息對應的用戶ID,bigint(20)值,相當於wp_users.ID。
◊ meta_key – 元信息關鍵字,varchar(255)值。
◊ meta_value – 元信息的詳細值,longtext值。

wp_users:

用於保存Wordpress使用者的相關信息的表。
◈ ID – 用戶唯一ID,bigint(20)值,帶附加屬性auto_increment。
◈ user_login – 用戶的註冊名稱,varchar(60)值。
◈ user_pass – 用戶密碼,varchar(64)值,這是經過加密的結果。好象用的是不可逆的MD5算法。
◈ user_nicename – 用戶暱稱,varchar(50)值。
◈ user_email – 用戶電郵地址,varchar(100)值。
◈ user_url – 用戶網址,varchar(100)值。
◈ user_registered – 用戶註冊時間,datetime值。
◈ user_level – 用於等級,int(2)值,可以是0-10之間的數字,不同等級有不同的對WP的操作權限。
◈ user_activation_key – 用戶激活碼,不詳。varchar(60)值。
◈ user_status – 用戶狀態,int(11)值,默認爲0。
◈ display_name – 來前臺顯示出來的用戶名字,varchar(250)值。

後記

在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記錄了每個文章(或鏈接)所對應的分類方法。

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

wordpress怎么取消修订和自动保存草稿?

wordpress怎麼取消修訂和自動保存草稿? 程序筆記 wordpress

WordPress自動儲存文章修訂版本記錄的功能,當你每編輯一次文章時,就會在後臺記錄一次,每次修訂都會在posts表中插入一條記錄。由於文章修訂與自動保存的干預,往往會使得文章的ID越來越大。雖然不會對於你的Wordpress運行造成很大的麻煩,但是文章版本過多的話會給你的空間和數據庫增加很大的負…
👁 373
帝国cms博客数据迁移至wordpress详细教程

帝國cms博客數據遷移至wordpress詳細教程 程序筆記 wordpress

PS1:第二次修改,目前已支持分類,文章,tag三者數據轉移PS2:如果文章ID一直對不齊,可以嘗試清空WordPress的文章分類數據表,關係表我之前博客用typecho,後來遷移到帝國,但是帝國功能太多了,博客用帝國有點大材小用的感覺!再者,我用博客我常記錄一些重要的代碼,這些代碼都是我辛辛苦苦…
👁 546
wordpress关于图片转码导致页面卡死的问题

wordpress關於圖片轉碼導致頁面卡死的問題 程序筆記 wordpress

昨晚上在上傳圖片的時候,不知道怎麼回事,然後上傳的圖片自動轉碼了轉碼類型:BASE64編碼網站上面一張圖,你放服務器上,然後訪問鏈接,這樣圖片就顯示了但還有一種辦法,那就是直接將圖片轉碼,這樣直接訪問轉換好的CODE便可以訪問問題描述:當圖片比較小,只有幾kb的時候,轉碼然後設置在網站上,這樣可以避…
👁 152
wordpress 数据库查询操作

wordpress 數據庫查詢操作 程序筆記 wordpress

首先鏈接數據庫要連接WordPress數據庫,需要在PHP文件中引入wp-config.php文件。該文件包含有關WordPress安裝的數據庫配置信息和其他常量。以下是一個簡單的示例,展示如何引入wp-config.php文件並獲取數據庫連接:// 引入 wp-config.php 文件 requ…
👁 378
wordpress 链接数据库执行更新sql操作

wordpress 鏈接數據庫執行更新sql操作 程序筆記 wordpress

要在WordPress中執行更新SQL語句,您需要首先建立一個新的PHP文件並引入WordPress的核心文件,這將包括數據庫鏈接以及$wpdb對象的定義。下面是一個示例: <?php // 引入WordPress的核心文件 require_once( dirname( __FILE__ ) …
👁 194

推薦閱讀

响应式相册图片壁纸网站模板 0788

響應式相冊圖片壁紙網站模板 0788 實用收藏 易優模板

此套eyoucms響應式模板適用於相冊、圖片與壁紙網站,設計風格視覺藝術,能夠展示精美圖片、壁紙資源、攝影作品及相冊集。有助於視覺創意平臺在線上吸引用戶瀏覽與下載。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(E…
👁 39
(自适应手机端)保健品健康产品网站模板下载 0996

(自適應手機端)保健品健康產品網站模板下載 0996 實用收藏 pbootcms模板

一款保健品健康產品PbootCMS網站模板,支持PC與WAP端。設計風格健康專業,適合保健品品牌展示產品系列、健康知識及品牌故事。有助於健康產品企業在線上吸引消費者,提升品牌形象。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn相…
👁 57
(PC+WAP)物业网站模板 pbootcms物业管理安保类网站源码下载 0065

(PC+WAP)物業網站模板 pbootcms物業管理安保類網站源碼下載 0065 實用收藏 pbootcms模板

這套PbootCMS模板專爲物業管理與安保服務類公司設計,支持PC端與WAP移動端。設計風格專業穩重,能夠很好地展示物業服務內容、安保方案及企業資質。有助於物業管理公司在線上建立品牌形象,提升客戶信任度並拓展業務。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin…
👁 62
响应式财经科技新闻博客网站模板 0789

響應式財經科技新聞博客網站模板 0789 實用收藏 易優模板

一款針對財經科技新聞博客的eyoucms響應式網站模板。設計風格現代信息流,能夠聚合財經資訊、科技動態、深度報道及市場分析。有助於財經科技媒體在線上吸引讀者,建立影響力。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CM…
👁 32
(PC+WAP)环保新材料科技pbootcms网站模板下载 0066

(PC+WAP)環保新材料科技pbootcms網站模板下載 0066 實用收藏 pbootcms模板

一款適用於環保新材料科技公司的PbootCMS網站模板,同時支持PC和手機端訪問。設計風格現代簡約,強調科技創新與環保理念。模板能夠很好地展示新型環保材料、技術研發成果及企業實力,是新材料企業樹立行業標杆形象的優質選擇。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:ad…
👁 50