一文說透WordPress的自定義文章型別

2021-09-19 18:09:18 字數 3545 閱讀 3942

**丘壑部落格

從2023年的1.0版本算起,wordpress在14年間已經迭代開發到了5.x版。如果說這中間哪個版本是乙個質的提公升的話,那應該算是2023年發布的代號為thelonious

的3.0版。這個版本發布了很多重要的功能,比如多站點、主題api等等,其中乙個就是 custom post type(自定義文章型別)。

雖然wordpress 2.9 版也引入了register_post_type()函式,但並不是很好用,在cms市場上競爭力並不是很強。3.0版的register_post_type()函式變的更好用了,同時這也使得wordpress從乙個單純的部落格管理系統( blogging system)變成乙個真正意義上的可以管理各種內容的內容管理系統(cms)。

post type,字面意思就是「文章型別」或者叫「帖子型別」,其實更準確的說法應該叫「內容型別」,是wordpress用來區分不同型別不同用途的內容的乙個術語。

post type 應該算是乙個業務術語,而不能算作乙個技術術語。因為從本質上講,它們都是wordpress業務資料庫裡同乙個資料表wp_posts

中的資料,資料結構都是一樣的,不同的post type之間的區別就是在post_type這個字段。見下圖:

在3.0版本之前 ,wordpress自帶的預設post type只有兩種最基本的型別:post和page,後來又擴充套件了如下幾種預設型別:

post type這個名字非常不友好,很容易讓人誤解和迷惑。post這個單詞一般都會被理解成文章,但那些並不是文章(post)的內容(見上面的列表),也被歸入文章型別(post type),所以叫做內容型別(content type)或許更準確。

雖然都是屬於post type,但不全都是post。這中間的差別,舉個例子就能理解了:麵包、麵條、麵粉、面料、面試都是面字頭,但又不全都是面。。。

你可以把所有內容更都用預設的文章或頁面這兩種型別來編輯和管理,反正都是資料而已,但這樣帶來的問題就是混亂,不好管理。這就好比不管什麼菜都用一種做法,一鍋亂燉,反正裝盤都能吃。

不同的菜當然有不同的管理方式和料理方式,甚至不同的餐具。同樣的道理,不同的內容也需要區別對待。所以除了預設的post type之外,還有乙個重要的型別就是custom post type–自定義文章型別,就是用來滿足內容生產者的不同需求。

那麼自定義文章型別到底可以做什麼用呢?能幹什麼這主要取決於你自己的需求和內容定位,沒有什麼規定,只要你願意,什麼樣的內容都可以定義成一種type,理論上說,你可以用custom post type來幹存任何你想要存的資料。隨便舉幾個例子:

總之,自定義文章型別(cpt)就是你的內容和內容儲存方式。不管哪種型別的內容,基本在wordpress中都是可以實現的。

只要遇到了一些資訊你覺得可能用預設的文章或者頁面的形式不好展現,那麼可能你就需要用到自定義文章型別了。

還有一種情形下也可以考慮使用自定義文章型別,當你使用了很多的頁面(page),並給頁面做了父子層級的時候,如果層級超過了十個,那麼多半這些頁面都屬於一種型別了,比如說乙個公司能提供多種多樣的services(服務),都用頁面形式的話也是可以的,但這種場景下,考慮用新建乙個自定義文章型別叫做services(服務)可能會更方便。

或者當你頻繁的使用文章的某乙個分類,或者並且為了想要對某些內容的url做一些自定義等等情況下,都可以考慮一下使用自定義文章型別了。

如果你對此不熟悉,那多半可能是因為你沒有這方面的需求,沒有用到而已,現有預設的文章和頁面兩種預設的post type已經能滿足你的需求了。如果你的**內容比較特殊,那麼就很有必要好好了解一下自定義文章型別了,很好很強大。

wordpress裡面可以自定義的部分非常多,非常靈活,這也正是wordpress的強大之處。這也帶來乙個問題就是關於自定義的術語也比較多,初學者會比較容易混淆。下面也稍微解釋一下它們之間的區別。

自定義文章型別(custom post type)不是普通意義上的文章(post),上面已經說過了。

自定義文章型別(custom post type)也不是自定義字段(custom fields)的替代品。實際上自定義欄位是作為內容的一部分或補充相關功能,比如乙個內容型別為電影的自定義字段可以有很多:導演、演員、風格、海報等等等。這方面的外掛程式就是之前結果過的meta box和advanced custom fields 、code embed

自定義文章型別(custom post type)也不是自定義分類(custom taxonomies)。比如你有了乙個自定義型別是電影,這時候用文章的分類可能就不適用了,需要新增自定義分類法,比如奇幻、恐怖、愛情、動作等等。

使用自定義文章型別有幾個好處:

更好的顯示形式。內容決定形式,形式影響內容。某些場景形式重於內容,某些場景內容重於形式,主要還是取決什麼樣的內容。在wordpress中可以針對自定義文章型別使用專門的頁面展示顯示形式,自由設定不同於預設文章的顯示樣式,以便突出顯示這類內容,聚焦優質內容。

更好的過濾結果。在需要按條件顯示wordpress文章時,wp_query預設的搜尋是post, 這時缺省會把自定義文章型別排除出去,除非你特意指明了需要的型別,這樣可以對過濾結果有更好的控制。

更好的使用者體驗。如果你是乙個開發者,服務的使用者群體是特定行業的從業者,他們不一定懂**,也不一定能搞清楚文章、頁面等等之間的區別,那麼最簡單的方法就是為他們量身打造一套自定義文章型別和發布流程,讓工具去適應使用者,而不是讓使用者去適應內容。

更好的安全性。

更高的效率。

更友好的url展示

總之,自定義文章型別(custom post types )可以讓你自定義並管理你的內容,使建立、編輯、管理更容易更高效,並且能以更好更方便的形式展現出來。

當你決定了開始使用自定義文章型別之後,首先面對的問題就是,應該怎麼弄?方法很多。

一般來說有兩種方法可以建立自定義文章型別:1. 手寫** 2. 通過外掛程式的方式來建立。

wordpress自身並沒有在後台提供一種視覺化的介面來建立自定義文章型別,但是有很多外掛程式也可以實現視覺化建立。

首先可以搜尋看下是你的內容型別否已經有外掛程式可以滿足需求了,比如電商外掛程式woocommerce這類高階外掛程式都會建立自己的post type。woocommerce的自定義型別就是products,也有相應的編輯後台和分類,統統都幫你做好了,直接使用就可以了。

如果內容型別比較特殊,沒有完全符合的外掛程式,那麼可以考慮使用自定義文章型別視覺化建立外掛程式。比如pods – custom content types and fields、custom post type maker、還有官方推薦的custom post type ui

,後面會寫一些這幾個外掛程式的詳細使用用法。

用外掛程式的方式當然是非常方便的,但同時也會有一些缺點:會引入很多不不要的**和資料,因為是通用行的解決方案,所有它們需要兼顧的方面比較多,有些是並不需要的需求,再一點,雖然這些外掛程式的基礎功能大都是免費的,但是高階功能還是需要付費的。

一文說透WordPress的自定義文章型別

丘壑部落格 從2004年的1.0版本算起,wordpress在14年間已經迭代開發到了5.x版。如果說這中間哪個版本是乙個質的提公升的話,那應該算是2010年發布的代號為thelonious 的3.0版。這個版本發布了很多重要的功能,比如多站點 主題api等等,其中乙個就是 custom post ...

一文說透https中的s是什麼?

一 http 與 https 有哪些區別?1.http 是超文字傳輸協議,資訊是明文傳輸,存在安全風險。https 是在 tcp 和網路層之間加入了 ssl tls 安全協議,也就是安全套接字層,使得報文能夠加密傳輸。2.http 連線建立相對簡單,tcp 三次握手建立之後便可進行 http 的報文...

一文說懂資料庫三正規化

最近在備考中級軟體設計師,遇到資料庫設計方面問題,首先解釋下三個名詞 碼 主屬性 非主屬性 碼 候選碼 關係中的某個屬性或者某幾個屬性的組合,用於區分每個元組。假如當 k 確定的情況下,該錶除 k 之外的所有屬性的值也就隨之確定,那麼 k 就是碼 主屬性 包含在任何乙個碼中的屬性成為主屬性。非主屬性...