新聞中心
wordpress自定義文章類型是強大的功能。它們將WordPress從一個不起眼的博客工具提升為一個內(nèi)容管理系統(tǒng),并為您提供創(chuàng)建定制網(wǎng)站所需的最重要的靈活性。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比海州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式海州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋海州地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
但它們可能會引起混淆:WordPress自定義文章類型到底是什么?它們與標準文章和頁面有何不同?你如何創(chuàng)造它們?一旦你創(chuàng)建了一個自定義的文章類型,你如何添加它,在你的網(wǎng)站上顯示它,以及它是如何被WordPress存儲的?
在本文中,我將向您展示W(wǎng)ordPress自定義文章類型的工作原理。我會將它們與您可能更熟悉的文章類型進行比較,教您如何創(chuàng)建它們,并向您展示如何使用主題模板文件在您的站點中顯示它們。
什么是WordPress中的自定義文章類型?
通過解釋一個更廣泛的概念:文章類型,可能更容易解釋W(xué)ordPress中的自定義文章類型。
文章類型是在WordPress中對不同類型的內(nèi)容進行分類的方法。我假設(shè)您已經(jīng)熟悉兩種最常見的文章類型:文章和頁面。但您可能不知道的是,WordPress還捆綁了其他一些文章類型。
與WordPress捆綁的文章類型
WordPress有七種文章類型:
- 文章
- 頁面
- 附件
- 修訂
- 導(dǎo)航菜單
- 自定義CSS
- 變更集Changesets
您可能從未聽說過變更集Changesets,并且您可能會在您的網(wǎng)站中使用自定義CSS,但您沒有想到這些可能是文章類型。
對于大多數(shù)WordPress用戶和開發(fā)人員來說,您唯一需要關(guān)注的文章類型是前五種:文章、頁面、附件、修訂和導(dǎo)航菜單。
讓我們看一下這些文章類型中的每一個,以便我們了解更多關(guān)于它們的信息。
WordPress文章類型:文章
“文章”是您在WordPress中使用最多的文章類型。文章是動態(tài)內(nèi)容:旨在定期更新。您可以向它們添加類別和標簽,這意味著它們將顯示在多個存檔頁面中,并且它們也將顯示在您的主頁或博客頁面上。通常,您的文章將構(gòu)成您網(wǎng)站上的大部分內(nèi)容。
注意:在 WordPress 中,“發(fā)布”意味著兩件事。在數(shù)據(jù)庫中,文章是任何文章類型的文章,因此它將包括頁面、附件和其他所有內(nèi)容。當(dāng)我們大多數(shù)人談?wù)撐恼聲r,我們指的是我們博客中的文章,屬于“文章”文章類型。
WordPress文章類型:頁面
如果您已經(jīng)有一個WordPress網(wǎng)站,頁面是您熟悉的另一種內(nèi)容類型。它們是靜態(tài)內(nèi)容,旨在比文章停留更長時間,并提供有關(guān)不經(jīng)常更改的事物的信息。很好的例子是您的聯(lián)系方式或商業(yè)網(wǎng)站上的“關(guān)于我們”頁面。
頁面不能有類別或標簽,也不能顯示在存檔頁面上。相反,訪問者將通過您的導(dǎo)航菜單訪問它們。
注意:在互聯(lián)網(wǎng)術(shù)語中,頁面可以表示您網(wǎng)站上的任何類型的頁面?;ヂ?lián)網(wǎng)最初發(fā)展時,它僅包含必須通過編寫HTML直接編碼的靜態(tài)內(nèi)容。因此,“網(wǎng)頁”可以是您網(wǎng)站上的任何類型的頁面,包括WordPress術(shù)語中的靜態(tài)頁面、存檔頁面或文章。在本文中,當(dāng)我提到頁面時,我指的是WordPress術(shù)語中的頁面,即靜態(tài)頁面。有時我會提到存檔頁面,但它們不是您創(chuàng)建一個頁面來存儲它們的意義上的頁面。WordPress為您做到這一點。
WordPress文章類型:附件
附件是已上傳到您網(wǎng)站的媒體項目。在WordPress數(shù)據(jù)庫中,這不是媒體文件本身,而是與之相關(guān)的數(shù)據(jù)。因此,每個附件都將具有唯一的ID和元數(shù)據(jù),例如其標題、描述、ALT文本等。
每個附件也有自己的附件頁面,帶有唯一的URL。您可以通過該附件的媒體編輯屏幕找到此URL:
WordPress中的附件編輯屏幕
附件可以是任何類型的上傳:圖像、視頻、pdf文件等等。您可以通過WordPress管理菜單中的媒體項訪問和編輯它們,也可以在編輯它們時將它們直接上傳到文章/頁面。您上傳到文章的任何附件都可以通過“媒體 ”菜單進行編輯和查看。
WordPress文章類型:修訂
現(xiàn)在我們開始討論稍微晦澀的文章類型。
每次您保存新版本的文章、頁面、附件或任何自定義文章類型時,WordPress都會創(chuàng)建一個修訂版以反映該文章(或頁面等)的版本。
您可以通過轉(zhuǎn)到相關(guān)編輯屏幕并打開右側(cè)的“文檔” 選項卡來查看對站點中任何文章或頁面的修訂。在這里,您會看到一條通知,告訴您這篇文章有多少次修訂。您可以在下面看到我正在編輯的文章的屏幕截圖,該文章目前有五個修訂版。
WordPress文章編輯屏幕中的修訂
如果您不使用古騰堡編輯器,您可以通過滾動到編輯屏幕底部并在此處找到它們的列表來訪問修訂:
經(jīng)典WordPress文章編輯屏幕中的修訂
如果您單擊“修訂 ”框,您將被帶到一個屏幕,顯示您最新的兩個版本的文章。從這里您可以查看修訂并恢復(fù)到文章的早期版本。
隨著時間的推移,WordPress會為您的網(wǎng)站創(chuàng)建大量修訂,這意味著數(shù)據(jù)庫將充滿它們(這是關(guān)于如何處理修訂版本以獲得更快性能的指南)!但是修訂版本是一種文章類型,就像其他任何類型一樣,它們以相同的方式存儲——很快就會有更多。
WordPress文章類型:導(dǎo)航菜單
導(dǎo)航菜單,或者更準確地說,導(dǎo)航菜單中的項目,也是一種文章類型。
導(dǎo)航菜單中的每個項目都作為一個項目存儲在數(shù)據(jù)庫中。由于其元數(shù)據(jù),WordPress知道這是一個導(dǎo)航菜單項,它應(yīng)該出現(xiàn)在導(dǎo)航菜單中的確切位置以及鏈接到的位置。
您不能像編輯其他文章類型一樣編輯導(dǎo)航菜單項。相反,您可以通過定制器或菜單屏幕來編輯它們。
WordPress文章類型:自定義CSS
如果您通過定制器添加自定義CSS,您的工作將使用此自定義文章類型保存。將為與您網(wǎng)站中的每個主題相關(guān)的自定義CSS保存一個新文章(“自定義CSS”文章類型),并且WordPress只會將一個用于當(dāng)前活動的主題。
WordPress文章類型:變更集
變更集有點像修訂,但它們不是應(yīng)用于文章,而是應(yīng)用于定制器。當(dāng)您使用定制器進行更改時,它將以類似于草稿的方式保存為更改集。
現(xiàn)在我們已經(jīng)了解了所有WordPress文章類型,讓我們繼續(xù)了解有關(guān)WordPress自定義文章類型的更多信息。
文章和自定義文章類型之間的區(qū)別
讓我們快速回顧一下:文章可以是兩件事之一。
文章類型是給定內(nèi)容項所屬的文章類型(在更廣泛的意義上)。“文章”是一種文章類型,就像“頁面”、“附件”或您注冊的任何自定義文章類型一樣(我知道,這很令人困惑,但我會在一分鐘內(nèi)深入挖掘)。
另一方面,您的自定義文章類型不是博客文章意義上的“文章”類型。它是存儲在數(shù)據(jù)庫中的所有文章(所有文章類型)意義上的一種文章。
WordPress自定義文章類型:常見用途
所以現(xiàn)在我們知道什么是自定義文章類型了。但是什么時候你可能需要使用一個?答案是每當(dāng)您想向您的網(wǎng)站添加不適合其中一種內(nèi)置文章類型的內(nèi)容時。
自定義文章類型的一些常見示例是:
- 電子商務(wù)網(wǎng)站的產(chǎn)品。
- 作品集網(wǎng)站的作品或項目。
- 地圖位置站點的地圖。
- 預(yù)訂網(wǎng)站的活動。
這些是一些最常見的用例,但絕不是唯一的用例。在決定是否對任何新內(nèi)容使用自定義文章類型時,我的建議是問自己這個問題:
我想在主博客頁面或靜態(tài)頁面中顯示我的新內(nèi)容,還是希望能夠在單獨的存檔頁面上顯示它?
在某些情況下,使用一個類別來分離您的新內(nèi)容可能就足夠了:也許您正在運行一個博客并希望包含可以在他們自己的頁面上顯示的案例研究(使用您創(chuàng)建的“案例研究”類別)并顯示在主博客中。但是,如果您想將新內(nèi)容與博客文章分開,那么為它創(chuàng)建自定義文章類型是有意義的。
WordPress如何存儲文章類型
自定義文章類型的文章的存儲方式與標準文章(和頁面等)的存儲方式相同。讓我們更詳細地看一下這個。
您的WordPress站點有許多用于存儲內(nèi)容和設(shè)置的數(shù)據(jù)庫表。表的最小數(shù)量是 12,但是如果您的站點運行多語言站點或者如果您安裝了添加更多表的插件,您的站點可能會有更多。
WordPress數(shù)據(jù)庫表
在上面的屏幕截圖中,您可以看到有兩個表看起來好像與文章有關(guān):wp_posts和wp_postmeta。
wp_posts表存儲所有文章類型的所有文章內(nèi)容。因此,無論我們談?wù)摰氖遣┛臀恼?、頁面、修訂、附件還是自定義文章類型都沒有關(guān)系:它們都將存儲在這個wp_posts表中。
WordPress知道每個文章的文章類型,因為它會在wp_posts表的post_type字段中有一個值。該值將對應(yīng)于文章類型的名稱。因此,當(dāng)您添加新的博客文章時,WordPress會在wp_posts表中添加一個post_type為“post”的文章。例如,如果您注冊了一個名為“product”的自定義文章類型,那么您創(chuàng)建的每個新產(chǎn)品都會在wp_posts表中生成一行,其中“product”作為post_type字段中的值。
wp_postmeta表用于存儲有關(guān)您的文章的元數(shù)據(jù)。它有四個字段:
- meta_id:wp_postmeta表中該項的id。
- post_id:該項元數(shù)據(jù)對應(yīng)的文章。一篇文章在wp_postmeta表中可以有多行。
- meta_key:此特定類型元數(shù)據(jù)的密鑰。例如,對于靜態(tài)頁面,一個潛在的鍵可能是page_template,它會記錄正在使用的頁面模板。
- meta_value:字段的值。如果頁面(再次使用此示例)正在使用默認頁面模板,則此處的meta_value將為“default”。
因此,為給定文章存儲的元數(shù)據(jù)種類將根據(jù)它的文章類型而有所不同。
您無需擔(dān)心哪些數(shù)據(jù)存儲在wp_posts中,哪些存儲在wp_postmeta中:但了解所有文章類型都存儲在同一個位置很有用,因為這意味著WordPress可以以幾乎相同的方式處理它們大大地。
自定義文章類型存儲在WordPress中的什么位置?
您的WordPress站點有許多用于存儲內(nèi)容和設(shè)置的數(shù)據(jù)庫表。例如,如果您注冊了一個名為“case study”的自定義文章類型,那么您創(chuàng)建的每個新案例研究都會在wp_posts表中生成一行,其中“product”作為post_type字段中的值。
WordPress知道每個文章的文章類型,因為它會在wp_posts表的post_type字段中有一個值。
自定義文章類型如何與自定義分類法和自定義字段交互
在我們繼續(xù)研究如何在WordPress中注冊自定義文章類型之前,讓我們確定自定義文章類型將如何與其他自定義內(nèi)容類型交互,即自定義分類法和自定義字段。
自定義分類法
WordPress中的分類法用于對任何文章類型的文章進行分類。對于標準文章,使用的兩種分類法是類別和標簽。
注冊自定義文章類型時,您可以選擇為其分配任何現(xiàn)有的分類法或分類法。您可以在注冊分類時為其添加“category”分類。當(dāng)我演示創(chuàng)建自定義文章類型的技術(shù)時,我將很快向您展示如何執(zhí)行此操作。
或者,您可以為您的自定義文章類型創(chuàng)建全新的分類法,這也是一種常用方法。
因此,例如,如果您正在為電子商務(wù)網(wǎng)站創(chuàng)建 “product”文章類型,您可能會創(chuàng)建“department” 分類來將產(chǎn)品分類到商店中的部門。
如果您正在創(chuàng)建 “event” 文章類型,則可以創(chuàng)建 “event type”分類,它可以指定這是一場音樂會、詩歌朗誦還是喜劇之夜。
您創(chuàng)建的分類法取決于您,并且取決于您希望從自定義文章類型對文章進行排序和顯示的方式。
自定義字段
您在WordPress中擁有的另一種自定義內(nèi)容類型是自定義字段,也稱為文章元數(shù)據(jù)。自定義字段是您可以添加到任何文章的附加元數(shù)據(jù),只要文章類型支持它們。當(dāng)您注冊自定義文章類型時,您可以在此行中包含自定義字段支持:
supports => array( ‘custom-fields’ );
這是作為數(shù)組傳遞的,以便您可以添加對多個選項的支持。
因此,如果您想將元數(shù)據(jù)添加到您的自定義文章類型,例如服裝店中具有“product”文章類型的尺寸或顏色,您將使用自定義字段來執(zhí)行此操作。
自定義字段不同于自定義分類法,因為您不會使用它們來輸出存檔頁面。
這是一家服裝店的示例。您將為“department”分類的每個示例創(chuàng)建一個存檔頁面,例如“Women’s”、“Men’s”等。假設(shè)您還有一個名為“Size”的自定義字段。您不會為每種尺寸創(chuàng)建存檔頁面,因為這不是您的客戶希望看到的。
遵循此規(guī)則可幫助您確定是否需要使用自定義分類法或自定義字段來向您的文章添加更多數(shù)據(jù):您是否需要在存檔頁面中顯示它?
稍后我將向您展示如何為您的自定義文章類型和自定義分類法輸出存檔頁面。
如何使用插件添加自定義文章類型
因此,您知道自定義文章類型是什么,并且您知道您的網(wǎng)站需要一個:如何添加它?
有兩種方法:使用插件和手動編碼。讓我們從插件路由開始。
您可以使用兩種類型的插件來注冊自定義文章類型:第一種將注冊自定義文章類型以添加??插件附帶的功能,第二種將為您提供可用于創(chuàng)建您的自己的文章類型。
第一個示例包括各種插件,包括電子商務(wù)插件、事件插件等。讓我們從最受歡迎的WordPress插件之一WooCommerce開始。
如何使用WooCommerce注冊自定義文章類型
WooCommerce是一個注冊自定義文章類型以便工作的插件示例。在這種情況下,它是“product”文章類型。
WooCommerce中列出的產(chǎn)品
WooCommerce還為您注冊了一些自定義分類和自定義字段來組織您的商店,包括產(chǎn)品類別和產(chǎn)品標簽。這些與您用于博客文章的類別和標簽不同。
如何使用Events Calendar插件注冊自定義文章類型
事件日歷插件是另一個使用自定義文章類型的插件。在這種情況下,它是“event”文章類型。
Events Calendar插件創(chuàng)建的event
該插件添加了事件獨有的分類法:“event category”。它也將普通標簽應(yīng)用于事件,因此您可以使用與博客文章相同的標簽。
如何使用WP Google Maps注冊自定義文章類型
就像WooCommerce和The Events Calendar一樣,WP Google Maps是一個WordPress地圖插件,可為您的地圖注冊自定義文章類型。
由WP Google Maps插件創(chuàng)建的地圖
“map”文章類型與之前插件中的產(chǎn)品或活動文章類型的工作方式不同,因為您不會顯示所有地圖的存檔頁面:相反,該插件為您創(chuàng)建的每個地圖提供了一個短代碼,您嵌入進入您網(wǎng)站的文章或頁面。但是,盡管您無法像查看其他一些文章類型一樣查看地圖,但它仍然是一種文章類型。
如何使用Custom Post Type UI插件
如果您想注冊自己的自定義文章類型,而不是作為WooCommerce等插件提供的更廣泛功能的一部分,您可以使用為您提供界面的插件,該界面旨在使注冊自定義文章類型變得容易。
一個這樣的插件是Custom Post Type UI插件。
Custom Post Type UI插件
該插件允許您使用管理屏幕注冊自己的自定義文章類型,而無需編寫任何代碼。
它為您提供了一組屏幕,可讓您添加注冊文章類型的所有元素,您將在使用register_post_type()函數(shù)時添加這些元素。要使用插件添加新的文章類型,請轉(zhuǎn)到CPT IU > Add/Edit Post Types。
使用Custom Post Type UI插件添加文章類型
從這里,您可以添加新的文章類型或編輯您已注冊的任何現(xiàn)有文章類型。
您可以編輯文章類型的設(shè)置,也可以將它們保留為默認設(shè)置。您可以在WordPress Codex中找到有關(guān)文章類型的所有設(shè)置和選項的完整文檔。
Custom Post Type UI插件的設(shè)置
您還可以使用該插件注冊自定義分類并將其分配給您的新文章類型或任何現(xiàn)有文章類型。當(dāng)您使用該插件注冊文章類型時,您可以為它分配任何現(xiàn)有的分類法。
如何使用Pods插件注冊自定義文章類型
Pods插件是另一個插件,它為您提供了一個界面,旨在讓您無需編寫代碼即可注冊自定義文章類型。
Pods還允許您擴展現(xiàn)有的文章類型。因此,您可以向現(xiàn)有文章類型或分類添加額外字段,并編輯其設(shè)置。
使用Pods插件創(chuàng)建文章類型
Pods插件使用文章類型(“pod”)來存儲您的所有自定義設(shè)置,并且還允許您注冊自己的文章類型,有點像Custom Post Type UI插件,但其界面旨在引導(dǎo)您完成整個過程. 這意味著該插件可以使該過程更容易,但與您自己編寫文章類型相比,它向您的站點(以及向您的數(shù)據(jù)庫中的數(shù)據(jù))添加了更多的代碼。
或者,如果您不想安裝插件來管理注冊文章類型的過程,您可以自己編寫代碼。
如何在WordPress中注冊您自己的自定義文章類型
如果您喜歡編寫代碼,您可以利用register_post_type()函數(shù)來注冊您的自定義文章類型。這是最有效的方法。
最佳實踐告訴我們將自定義文章類型的代碼放在插件中,而不是在您的主題中。這是因為如果您將來要更改主題,您將不希望丟失文章類型以及您使用該文章類型創(chuàng)建的所有文章。這也意味著如果您將來更新主題,您將不會丟失您的文章類型。
讓我們完成在WordPress中注冊您自己的自定義文章類型的步驟。
創(chuàng)建你的插件
第一步是創(chuàng)建你的插件。在您的開發(fā)或臨時站點(還不是您的實時站點)的wp-content/plugins文件夾中,為您的插件添加一個文件夾。在該文件夾中,添加一個PHP文件。比如wbolt-register-posttype.php。
提示:我總是喜歡在文件夾中創(chuàng)建插件,而不是僅僅將插件文件添加到wp-content/plugins文件夾中。這樣,如果我需要向我的插件添加更多文件,例如包含文件、腳本或樣式,我已經(jīng)準備好一個文件夾來保存它們。
現(xiàn)在在您的新php文件中,為您的插件添加開頭注釋掉的文本:
這會告訴WordPress(和用戶)有關(guān)插件的一些關(guān)鍵信息:
- 它叫什么
- 在哪里可以找到更多信息
- 它能做什么
- 版本號
- 誰開發(fā)了它,你可以在哪里找到更多關(guān)于它們的信息
- 國際化的文本域
- 許可證,應(yīng)始終為GPL。
所以你的插件現(xiàn)在已經(jīng)設(shè)置好了,如果你愿意,你可以在管理屏幕中激活它。如果你這樣做,它不會做任何事情。
為您的文章類型設(shè)置函數(shù)
現(xiàn)在讓我們開始創(chuàng)建函數(shù)來注冊您的文章類型。在我的示例中,我將創(chuàng)建一個名為“book”的文章類型,因為這是一個虛構(gòu)的書評網(wǎng)站。您使用的內(nèi)容顯然會有所不同,并且取決于您使用自定義文章類型的目的。
在注釋掉的文本下方,添加以下內(nèi)容:
function wbolt_register_post_type() {
}
add_action( 'init', 'wbolt_register_post_type' );
此函數(shù)將包含您的自定義文章類型的所有代碼。您可能想要更改其名稱以添加您自己的前綴而不是wbolt_。最好在所有函數(shù)上使用前綴,這樣您就不會與主題或正在運行的其他插件提供的任何函數(shù)的名稱發(fā)生沖突。
其余代碼將添加到該函數(shù)的大括號內(nèi)。
為您的自定義文章類型定義標簽
現(xiàn)在是時候為您的自定義文章類型定義標簽了,在這些花括號內(nèi),添加以下內(nèi)容:
$labels = array( 'name' => __( ‘Books’, ‘wbolt’ ), 'singular_name' => __( 'Book', ‘wbolt’ ), 'add_new' => __( 'New Book', ‘wbolt’ ), 'add_new_item' => __( 'Add New Book', ‘wbolt’ ), 'edit_item' => __( 'Edit Book', ‘wbolt’ ), 'new_item' => __( 'New Book', ‘wbolt’ ), 'view_item' => __( 'View Books', ‘wbolt’ ), 'search_items' => __( 'Search Books', ‘wbolt’ ), 'not_found' => __( 'No Books Found', ‘wbolt’ ), 'not_found_in_trash' => __( 'No Books found in Trash', ‘wbolt’ ), );
如果您的自定義文章類型不是“book”,則需要更改您的。您可以使用更多標簽,但我發(fā)現(xiàn)上面的標簽往往足以滿足我的需求。
請注意,我在標簽中使用了國際化,因此它們將被翻譯成用戶的本地語言。
為您的自定義文章類型定義參數(shù)
下一步是定義參數(shù),其中一個是我們已經(jīng)添加的標簽數(shù)組。
在標簽下方且仍在這些大括號內(nèi),添加以下內(nèi)容:
$args = array( 'labels' => $labels, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'supports' => array( 'title', 'editor', 'excerpt', 'custom-fields', 'thumbnail', 'page-attributes' ), 'taxonomies' => 'category', 'rewrite' => array( 'slug' => 'book' ), ‘show_in_rest’ => true );
讓我們來看看所有這些都做了什么。
- 標簽參數(shù)是我們已經(jīng)定義的標簽數(shù)組。
'has_archive' => true為自定義文章類型啟用文章類型存檔。這默認為false,所以我喜歡覆蓋它并給自己選擇使用文章類型存檔的選項(我將很快向您展示如何使用)。'public' => true使文章類型可以包含在搜索結(jié)果和自定義查詢中。同樣,默認值為false,這是我喜歡覆蓋的內(nèi)容。- “hierarchical”值將取決于您希望如何使用自定義文章類型。如果將此設(shè)置為true,則文章類型的行為類似于頁面,具有可能的層次結(jié)構(gòu)以及您文章類型的任何文章的父文章和子文章。如果將其設(shè)置為false,它的行為就像文章一樣,沒有層次結(jié)構(gòu)。
- ‘supports’ 數(shù)組定義了您可以擁有此文章類型支持的文章類型的許多功能。我喜歡確保打開特色圖像和自定義字段等功能。
- ‘taxonomies’ 參數(shù)定義了適用于此文章類型的現(xiàn)有分類法。在這里,我使用“category”分類法。如果您想使用自定義分類法但尚未注冊,只需跳過此行,然后將分類法注冊到文章類型。如果您已經(jīng)注冊了自定義分類法,則可以使用此行將其添加到文章中。
- 我正在使用“rewrite”參數(shù),因為我要給分類法一個不同于我想用于它的slug的名稱。我將在稍后更詳細地解釋這一點。
‘show_in_rest’ => true確保文章類型可用于REST API和Gutenberg接口。它默認為false,這對我來說毫無意義——我希望我所有的文章類型都使用相同的編輯界面!
所以這些就是所有的論點。但是我們還沒有真正注冊文章類型。是時候解決這個問題了。
添加register_post_type()函數(shù)
最后一步是將所有這些整合到register_post_type()函數(shù)中。
在您的論點下方,仍在大括號內(nèi),添加以下內(nèi)容:
register_post_type( ‘wbolt_book', $args );
這將使用我們已經(jīng)定義的參數(shù)注冊“wbolt_book”文章類型。
現(xiàn)在您可能會更容易理解為什么我之前使用了 ‘rewrite’ 參數(shù)。我喜歡為我的文章類型的名稱添加前綴,因此我可以確保它們不會與任何第三方插件添加的任何文章類型發(fā)生沖突,但我不希望將前綴公開。
默認情況下,當(dāng)WordPress顯示您的文章類型的示例時,它將在 URL 中使用文章類型的名稱。因此,我的名為“My Wonderful Book”的書的URL為 mysite.com/wbolt_book/my-wonderful-book。我不希望這樣,所以我使用“rewrite”參數(shù)將URL更改為 mysite.com/book/my-wonderful-book??雌饋砗枚嗔耍菃??
現(xiàn)在保存您的文件并在WordPress管理員中激活您的插件。您會發(fā)現(xiàn)管理菜單中出現(xiàn)了一種新的文章類型。
管理屏幕中的“book”文章類型
文章類型現(xiàn)已注冊并準備好在您的網(wǎng)站上使用?;ㄒ恍r間向其中添加一些文章(記住您的自定義文章類型的文章,而不是博客文章 – WordPress有時會讓人感到困惑?。┤缓笪覀儗⒖纯慈绾卧谇懊骘@示您的自定義文章類型的文章您網(wǎng)站的結(jié)尾。
如何在您的網(wǎng)站中顯示W(wǎng)ordPress自定義文章類型
您添加到站點的大多數(shù)自定義文章類型都將像文章一樣工作,這意味著它們旨在顯示在存檔頁面中。也許您正在使用自定義分類法來顯示它們,或者您可能像我一樣添加了“category”分類法。
或者,如果您使用了像WooCommerce這樣的插件來添加自定義文章類型以向您的網(wǎng)站添加特定功能,那么該插件可能會添加一些特定頁面(如“Shop2頁面”)以輸出您的自定義文章類型。
顯示自定義文章類型的四個選項是:
- 顯示單個文章(在我的示例中,即書)
- 顯示完整的文章類型存檔,列出所有書籍。
- 使用您為自定義文章類型注冊的分類顯示自定義分類存檔。
- 將自定義文章類型(例如書籍)中的文章集成到現(xiàn)有分類法(例如“category”)的存檔中,或集成到主博客頁面中。
讓我們依次看看這些。
警告!如果在此過程中的任何時候您無法訪問自定義文章類型的檔案或單個文章,那是因為WordPress尚未為它們編寫永久鏈接。要解決此問題,請轉(zhuǎn)到“設(shè)置”>“固定鏈接” ,然后單擊“保存更改 ”按鈕。這將告訴WordPress檢查任何新的文章類型并為它們創(chuàng)建URL。
顯示文章類型存檔
您擁有的第一個選項是創(chuàng)建自定義文章類型存檔中所有文章的存檔頁面。
如果您在注冊文章類型時將“has_archive”定義為true,WordPress將自動為您的文章類型生成一個存檔頁面。您可以使用定制器將此添加到導(dǎo)航菜單中。
將您的文章類型存檔添加到菜單
打開定制器并選擇菜單選項。選擇您的主菜單并單擊添加項目 按鈕以向您的菜單添加額外的項目。
在WordPress定制器中添加菜單項
從出現(xiàn)的選項中選擇您的文章類型,然后單擊其名稱右側(cè)的向下箭頭。這將顯示包含您添加的每個文章的所有列表,以及一個在我的例子中稱為All Books的選項。單擊它,它將被添加到您的菜單中。
如果然后單擊菜單中的該項目,則可以編輯標簽。我不想稱我的為“All Books”,而只稱其為“Books”。
編輯書籍菜單項
請注意,您只能通過定制器執(zhí)行此操作 – 在菜單屏幕中是不可能的。因此,請確保您使用定制器將您的自定義文章類型存檔添加到您的菜單中。
自定義文章類型存檔
WordPress將使用模板層次結(jié)構(gòu)來識別主題中的哪個模板文件用于顯示自定義文章類型存檔。
WordPress模板層次結(jié)構(gòu)
如果您的主題有一個archive.php文件,它將使用該文件,如果沒有,它將使用index.php。
如果要編輯自定義文章類型存檔的輸出方式,則可以為自定義文章類型存檔創(chuàng)建模板文件。
對于特定的自定義文章類型,您需要創(chuàng)建一個名為archive-$posttype.php的模板文件,其中$posttype是您的文章類型的名稱。因此,對于我的書籍文章類型,我將創(chuàng)建一個名為archive-wbolt_book.php的文件。
創(chuàng)建此文件的最簡單方法是在您的主題中復(fù)制archive.php文件。重命名并編輯它,以便它以您想要的方式顯示您的文章類型存檔。
顯示單個文章
使用自定義文章類型創(chuàng)建的單個文章也將使用模板層次結(jié)構(gòu)中找到的第一個相關(guān)模板文件顯示。
您可以使用單個文章比使用存檔更進一步:您不僅可以為文章類型創(chuàng)建模板文件(single-$posttype.php),還可以為該文章的特定文章創(chuàng)建文件使用該文章的slug鍵入 (single-$postype-slug.php)。
因此,如果我將Great Expectations 添加到我的書評網(wǎng)站,我可以為所有書評創(chuàng)建一個名為single-wbolt_book.php的文件,或者我可以為該書創(chuàng)建一個名為 single-wbolt_book-great-expectations.php的目標文件。如果我沒有創(chuàng)建這些文件中的任何一個,WordPress將默認使用single.php或(如果不存在singular.php或index.php。
將自定義文章類型添加到主博客頁面
默認情況下,您的主博客頁面將僅包含“post”文章類型。但是,如果您還想在該頁面上包含自定義文章類型,與博客文章混合怎么辦?
您可以通過使用WordPress中的pre_get_posts鉤子來完成此操作。
在您注冊文章類型的插件中,添加以下內(nèi)容:
is_home() && $query->is_main_query() ) {
$query->set( ‘post_type', array( ‘post’, ‘wbolt_book’ );
}
}
add_action( 'pre_get_posts', 'wbolt_books_on_blog_page' ); ?>
這會檢查我們是否在“主頁”頁面(即博客頁面,即使那不是您網(wǎng)站的首頁)以及主查詢是否正在運行(因為您不想在一個小部件,例如)。如果是這樣,它會將文章和書籍添加到查詢中。
請注意,您必須在數(shù)組中包含“post”文章類型以及新的文章類型。
小結(jié)
WordPress自定義文章類型是將其從簡單的博客平臺提升為真正的內(nèi)容管理系統(tǒng)的功能。它們使您可以創(chuàng)建復(fù)雜的定制站點,這些站點可以充當(dāng)商店、參考中心、媒體站點或您需要的任何東西。
您可以通過以下三種方式之一將自定義文章類型添加到您的WordPress網(wǎng)站。您可以使用諸如WooCommerce之類的插件來注冊與插件功能相關(guān)的自定義文章類型。您可以使用CPT UI或Pods之類的插件來添加您自己的自定義文章類型。或者您可以編寫自己的插件并使用該register_post_type()函數(shù)使用代碼注冊文章類型。無論您使用哪種方法,您都可以從您的WordPress網(wǎng)站獲得更多收益。
當(dāng)前標題:WordPress自定義文章類型:創(chuàng)建和使用它們的多合一指南
本文網(wǎng)址:http://www.dlmjj.cn/article/cdohsie.html


咨詢
建站咨詢
