足夠說,讓我們來實現本教程的目的,即在WordPress中學習自定義帖子類型的複雜性。
>我希望解決我個人與CPT合作的許多障礙,以及您可以做的一些很酷的事情。
>自定義帖子類型定義
在內部,所有帖子類型都存儲在wp_posts數據庫表中,但通過稱為post_type的列進行區分。
> POST類型是指在WordPress數據庫帖子表中保留的各種結構化數據。>帖子類型的示例是帖子(一組博客帖子),頁面(一組頁),附件(一組上傳的媒體文件)和修訂版(一組郵政修訂版)在WordPress中。
武裝著郵政類型的定義,一種創建並註冊到WordPress的新帖子類型被稱為自定義郵政類型。
>如果您正在構建具有WordPress的公司或商業網站,則可以創建的帖子類型的示例是投資組合,推薦和產品。
現在我們已經了解了自定義帖子類型的概念,接下來就是學習如何創建它們。
創建自定義帖子類型從上面的代碼中,您可以看到register_post_type()具有第二個函數參數,該函數接受自定義自定義帖子類型的各個方面所需的許多數組參數。
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
>值得注意的是,在調用register_post_type()時,第二個參數是可選的。也就是說,cpt也可以如下創建:
>
>讓我們介紹一些數組參數,以自定義CPT及其各自的功能。
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
>您的自定義帖子類型的複數描述名稱。例如,如果您要創建電影CPT,則應該是電影。
>它將默認為$ post_type的值,這是register_post_type()的第一個參數。
該帖子類型的標籤數組。每個字符串都是特定管理頁面中顯示的一些文本。
>如果您要創建供公眾使用的插件,請確保可以翻譯這些字符串。
>
描述>公共
show_ui:確定是否顯示給管理屏幕。
>菜單_icon
新的帖子類型將默認為“帖子”菜單圖標,但是如果您想要一個自定義圖標,請將此標籤設置為圖標或圖像文件的URL。
說您想使用下載dashicon,將此標籤設置為dashicon值,如下所示:
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
層次結構
這個論點使您可以決定是否製作CPT層次結構。默認值是錯誤的。設置為true以使您的CPT層次結構。
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
將此參數設置為false將阻止默認(標題和編輯器)行為。
提供一個回調函數,在設置編輯表單的元框時將調用。回調函數獲取一個參數$ post,其中包含當前編輯帖子的WP_POST對象。
>
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
has_archive
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
重寫
>
讓我們來看看一些示例,以清楚起見。>
說您創建了一個自定義帖子類型,但希望將URL slug從>評論
更改為>評估>,使用以下重寫參數將從http://示例更改URL 。 CPT存檔。 >每當您進行WordPress URL重寫時,請確保單擊“設置”中的“保存更改”按鈕>>永久鏈接以重新創建重寫規則。
><span>'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',</span>
>在_front上仍然不清楚嗎?讓我們看看一個例子。
>說您有一個固定鏈接結構,帶有
博客,如下圖所示。
>>如果with_front設置為false,則單個帖子和檔案庫的URL變為http://example.com/blog/assessment/harry-potter/ and http://example.com/blog/assessment/但是,如果將其設置為真,則單個帖子和檔案存檔的URL分別為http://example.com/assessment/harry-potter/和http://example.com/assessment/。
請注意後者中博客的遺漏?這就是區別。
>使用此參數來決定是否可以通過WordPress導出工具導出屬於您的自定義帖子類型的帖子。默認情況下,這將設置為true。
此參數允許您控制用於獲取此類型帖子的查詢變量。
如果設置為true,它將允許您通過example.com/?book=harry-potter請求書籍自定義帖子類型,其中harry-potter是書本或帖子的url slug。
如果設置為字符串而不是true(例如出版),則可以: “ query_var”的警告>
> query_var在您的cpt註冊數組中未定義,它默認為$ post_type,除非將其設置為false。>
http://example.com/?review=some-random-string
http://example.com/a-post-slug-here/?foo=bar&review = some-random-string
>現在我們已經覆蓋了基礎,現在是時候指出WordPress插件存儲庫中的許多插件,使創建自定義帖子類型非常簡單。
>
>示例包括(但不限於):自定義帖子類型UI
自定義郵政類型製造商
>如何在WordPress中創建自定義帖子類型?輸入WordPress涉及在主題的函數.php文件中添加幾行代碼。您需要使用register_post_type()函數,該函數允許您指定自定義帖子類型的名稱,標籤和其他功能。請記住,通過訪問永久鏈接設置頁面創建新的自定義帖子類型之後,要刷新您的重寫規則。
我可以使用插件創建自定義帖子類型嗎?
>>如何在我的自定義帖子類型中添加分類法? register_taxonomy()函數。此功能使您可以創建新的分類法,指定其標籤,並將其與您的自定義帖子類型相關聯。然後,您可以使用此分類法來對您的自定義帖子類型的內容進行分類和過濾。
>在註冊自定義帖子類型時,可以使用“支持”參數自定義帖子類型自定義admin界面。該參數允許您指定帖子編輯屏幕中的哪些功能,例如標題,編輯器,縮略圖和自定義字段。
是的,您可以在網站的搜索結果中包含自定義帖子類型。這可以通過在註冊自定義帖子類型時將“ dubl_from_search”參數設置為false來完成。您還可以使用插件或自定義代碼來進一步自定義網站的搜索功能。
>以上是WordPress自定義帖子類型的權威指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!