WordPress使用MySQL數(shù)據(jù)庫。作為一個開發(fā)者,我們有必要掌握WordPress數(shù)據(jù)庫的基本構(gòu)造,并在自己的插件或主題中使用他們。 截至WordPress3.0,WordPress一共有以下11個表。這里加上了默認的表前綴?wp_?。 wp_commentmeta:存儲評論的元數(shù)據(jù) wp_comments:存儲評論 wp_links:存儲友情鏈接(Blogroll) wp_options:存儲WordPress系統(tǒng)選項和插件、主題配置 wp_postmeta:存儲文章(包括頁面、上傳文件、修訂)的元數(shù)據(jù) wp_posts:存儲文章(包括頁面、上傳文件、修訂) wp_terms:存儲每個目錄、標簽 wp_term_relationships:存儲每個文章、鏈接和對應分類的關(guān)系 wp_term_taxonomy:存儲每個目錄、標簽所對應的分類 wp_usermeta:存儲用戶的元數(shù)據(jù) wp_users:存儲用戶 在WordPress的數(shù)據(jù)庫結(jié)構(gòu)中,存儲系統(tǒng)選項和插件配置的wp_options表是比較獨立的結(jié)構(gòu),在后文中會提到,它采用了key-value模式存儲,這樣做的好處是易于拓展,各個插件都可以輕松地在這里存儲自己的配置。 post,comment,user 則是三個基本表加上拓展表的組合。以wp_users為例,wp_users已經(jīng)存儲了每個用戶會用到的基本信息,比如 login_name、display_name、 password、email等常用信息,但如果我們還要存儲一些不常用的數(shù)據(jù),最好的做法不是去在表后加上一列,去破壞默認的表結(jié)構(gòu),而是將數(shù)據(jù)存在wp_usermeta中。wp_usermeta這個拓展表和wp_options表有類似的結(jié)構(gòu),我們可以在這里存儲每個用戶的QQ號碼、手機號碼、登錄WordPress后臺的主題選項等等。 比較難以理解的是term,即wp_terms、wp_term_relationships、wp_term_taxonomy。在WordPress的系統(tǒng)里,我們常見的分類有文章的分類、鏈接的分類,實際上還有TAG,它也是一種特殊的分類方式,我們甚至還可以創(chuàng)建自己的分類方法。WordPress將所有的分類及分類方法、對應結(jié)構(gòu)都記錄在這三個表中。wp_terms記錄了每個分類的名字以及基本信息,如本站分為“WordPress開發(fā)”、“WPCEO插件”等,這里的分類指廣義上的分類,所以每個TAG也是一個“分類”。wp_term_taxonomy記錄了每個分類所歸屬的分類方法,如“WordPress開發(fā)”、“WPCEO插件”是文章分類(category),放置友情鏈接的“我的朋友”、“我的同事”分類屬于友情鏈接分類(link_category)。wp_term_relationships記錄了每個文章(或鏈接)所對應的分類方法。 慶幸的是,關(guān)于term的使用,WordPress中相關(guān)函數(shù)的使用方法還是比較清晰明了,我們就沒必要糾結(jié)于它的構(gòu)造了。