什麼是 Post Type
身為一個充滿彈性的內容管理系統,WordPress 將各式不同類型的資料,以 Post Type (內容類型)來做區分,儲存在資料庫中以便取用。
在內建的 Post Type 中,常見的有文章 (post)、頁面 (page)、媒體 (attachment) 等,每一筆資料都對應具體的文本和檔案;另外像是版本修訂 (revision)、選單 (nav_menu_item) 等,屬於網站系統的設定值;更有一部分 Post Type 並未開放使用者操作和檢視,僅用以協助系統運行。這些 Post Type 各司其職,組成了 WordPress 世界豐富的生態系統。
為什麼需要自訂 Post Type (Custom Post Type)
WordPress 系統的預設環境聚焦於寫作,作為部落格網站,內建的 Post Type 能夠滿足絕大部分的需求;但如果想在 WordPress 系統中實現更豐富的功能,系統會需要處理更多不同類型的資料,內建的 Post Type 可能無法符合需求,而需要 Custom Post Type 的協助。
舉例來說,依照開發的需求和情境的不同,電商網站會需要管理產品 (Product);活動報名網站會需要管理個別活動 (Event);聯絡表單則會需要管理表單 (Form)、表單紀錄 (Submission) 等。這些資料類型自然無法透過內建的 Post Type 進行管理,需要額外自訂 Post Type。
此外,透過 Custom Post Type 也能讓後台使用介面更加友善,不同的資料項目在後台能夠清楚區分;若將所有資料存於內建的文章 (post) 和 分類 (category) 中,不僅操作上不夠直覺方便、容易混淆,在開發時也會需要撰寫較為複雜的過濾條件,影響效能。
如何新增 Custom Post Type
在 WordPress 中新增 Custom Post Type,主要有兩種方法:
自行撰寫程式碼
您可以參閱 WordPress 官方文件 ,瞭解如何使用 register_post_type
**** 函式及參數,在系統中註冊 Custom Post Type;或以 GenerateWP 這類半自動化的工具,協助您產生需要的程式碼。這些程式碼,直接放置在目前佈景主題的 **functions.php** 就會生效;或者利用外掛存放程式碼(例如 Code Snippets),方便作更進一步的管理。
透過外掛新增並管理
在眾多外掛工具中,Custom Post Type UI (CPT UI) 由於推出的早、免費使用,又有持續維護和更新,安裝數量是最多的。不過,最近由於 Advanced Custom Field (ACF) 6.1 新版本釋出,在免費版就能使用自訂 Post Type 與 Taxonomy 的新功能,以下我們就使用 ACF 6.1 作為示範。
使用 ACF 6.1 新增 Custom Post Type
安裝並啟用 Advanced Custom Field
前往 WordPress 後台的「外掛 (Plugin)」>「安裝外掛 (Add New)」,並在右側的搜尋欄位輸入 Advanced Custom Fields,下方會出現對應的搜尋結果。點擊「立即安裝 (Install)」開始安裝程序,安裝完成後按鈕文字會變更為「啟用 (Activate)」,再次點擊按鈕啟用。
新增並編輯 Custom Post Type
前往 WordPress 後台的「ACF」>「Post Types」,按下「+Add New (新增) 」按鈕。
進入新增 Post Type 畫面,此處有 3 個欄位:
原始文字 | 說明 | 用途 |
---|---|---|
Plural Label | 複數形態標籤 | 表示這個 Post Type 的總稱。 |
Singular Label | 單數形態標籤 | 表示這個 Post Type 的單筆資料。* |
Post Type Key | 鍵值/代稱 | 表示這個 Post Type 在系統中的唯一命名,也是網址結構中所出現的文字。僅容許英數文字、橫線及底線。 |
按:Plural Label 與 Singular Label 用於前台/後台介面的顯示文字,可任意輸入,亦支援中文。在拼音文字(如西歐字母等)有單數、複數型態的差別;由於中文詞彙沒有區分單複數,使用中文來命名 Post Type 時,可以使用同一個詞,沒有差別。
Advanced Configuration(進階設定)
此處包含更多細部設定,進一步說明可參考 官方文件 。
完成 Custom Post Type 註冊
填寫完畢後,按下右上角「 Save Changes」,完成新增。你會發現後台主選單,將新增一個項目,包含基本的新增、編輯、修改的功能。