首頁 > CMS教程 > &#&按 > WordPress自定義帖子類型的權威指南

WordPress自定義帖子類型的權威指南

Lisa Kudrow
發布: 2025-02-15 13:11:11
原創
513 人瀏覽過

WordPress自定義帖子類型的權威指南

鑰匙要點

    WordPress已演變為成熟的內容管理系統和開發平台,能夠通過插件,主題和WP REST API將帖子或結構化數據分組為各種類型。 WordPress中的自定義帖子類型(CPT)是創建並註冊到WordPress的新帖子類型。帖子類型的示例可能包括公司或商業網站的投資組合,推薦和產品。
  • >創建自定義帖子類型涉及使用register_post_type()函數註冊郵政類型,並使用一系列參數自定義它。這些參數可以控制諸如描述性名稱,公眾可見性,菜單位置,圖標,層次結構以及帖子類型的其他功能。
  • >有幾個可用的插件,例如自定義郵政類型UI,PODS框架和自定義Post類型製造商,可以簡化創建自定義郵政類型的過程,從而使其更加用戶友好,並消除了編碼的需求。 🎜>
  • >“ wordpress被稱為博客軟件”的日子已經一去不復返了。 通過插件和主題,組帖子或結構化數據擴展其功能的能力,以及WP REST API的到來,也將其進一步演變為完整的內容管理系統和開發平台。
  • 多年來,我已經成功地開發了許多自定義的Web應用程序,該應用程序大量利用自定義帖子類型。這些Web應用程序之一的一個示例是我的WordPress插件的主題市場,稱為ProfilePress。
  • 仔細查看上面鏈接的主題市場,您會發現它使用了下一個 /上空分頁鏈接的URL中明顯的自定義分頁系統。因此,您有可能構建一個內部的分頁系統,該系統將在查詢自定義帖子類型(CPT)中完美工作。
>

足夠說,讓我們來實現本教程的目的,即在WordPress中學習自定義帖子類型的複雜性。

>我希望解決我個人與CPT合作的許多障礙,以及您可以做的一些很酷的事情。

>

自定義帖子類型定義

post也是特定的帖子類型,但這種內容的單個項目通常稱為帖子。

在內部,所有帖子類型都存儲在wp_posts數據庫表中,但通過稱為post_type的列進行區分。

> POST類型是指在WordPress數據庫帖子表中保留的各種結構化數據。

>帖子類型的示例是帖子(一組博客帖子),頁面(一組頁),附件(一組上傳的媒體文件)和修訂版(一組郵政修訂版)在WordPress中。

武裝著郵政類型的定義,一種創建並註冊到WordPress的新帖子類型被稱為自定義郵政類型。

>如果您正在構建具有WordPress的公司或商業網站,則可以創建的帖子類型的示例是投資組合,推薦和產品。

現在我們已經了解了自定義帖子類型的概念,接下來就是學習如何創建它們。

創建自定義帖子類型

>創建自定義帖子類型非常容易。首先,將帖子類型註冊為register_post_type()函數,最後,在函數調用中wrap register_post_type()並將其連接到INIT ACTION,例如So:>

從上面的代碼中,您可以看到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>
登入後複製
登入後複製
登入後複製
您現在應該看到portfolio自定義帖子類型出現在WordPress Admin儀表板中。 >

>值得注意的是,在調用register_post_type()時,第二個參數是可選的。也就是說,cpt也可以如下創建:

>

WordPress自定義帖子類型的權威指南如果以這種方式創建了CPT,它將不會顯示在Admin儀表板菜單中(儘管仍然可以通過Direct URL訪問訪問“ http://example.com/wp-admin/eedit.php?post_type = portfolio“)及其UI措辭(否則稱為標籤)和管理通知將與內置的郵政帖子類型相同。

>讓我們介紹一些數組參數,以自定義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()的第一個參數。

標籤

該帖子類型的標籤數組。每個字符串都是特定管理頁面中顯示的一些文本。

>如果您要創建供公眾使用的插件,請確保可以翻譯這些字符串。

  • 名稱:帖子類型的名稱的複數形式。
  • >
  • singular_name:帖子類型的名稱的單數形式。
  • >
  • add_new:添加新帖子的菜單項。
  • >
  • add_new_item:創建新帖子時顯示的標題。
  • edit_item:編輯帖子時顯示的標題。
  • > new_item:在管理標題中的“收藏夾”菜單中顯示。
  • view_item:在編輯後屏幕上與永久鏈接一起顯示。
  • search_items:編輯帖子屏幕上搜索框的按鈕文本。
  • not_found:在admin中未找到帖子時顯示的文本。
  • not_found_in_trash:垃圾中沒有帖子時要顯示的文本。
>可以在此處找到標籤及其描述的完整列表。

>

描述

>簡短的描述性摘要,即郵政類型是什麼,儘管我尚未在WordPress Admin中找到它的位置。

>公共

>根據其布爾值,除非明確定義,否則它將自動決定其他參數。如果您想對公開論點有更多的控制權,則可能會設置三個具體論點:>

show_ui:確定是否顯示給管理屏幕。

>
    publicly_queryable:確定是否可以從前端執行此帖子類型的查詢。
  • dubl_from_search:帖子是否應出現在搜索結果中。
  • >
  • 菜單_position
默認情況下,在管理員中的“註釋”菜單項之後,添加了一種新的帖子類型。但是您必須能夠將其移至選擇的合適位置。

>

例如,將菜單_ position值設置為70將在用戶下方添加您的菜單項。 >

菜單_icon

新的帖子類型將默認為“帖子”菜單圖標,但是如果您想要一個自定義圖標,請將此標籤設置為圖標或圖像文件的URL。

>您也可以將任何dashicon用作CPT圖標。

說您想使用下載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將阻止默認(標題和編輯器)行為。 >

有幾個可用的選項:

  • >標題:創建帖子標題的文本輸入字段。
  • 編輯器:寫作內容的內容編輯器。
  • >
  • 作者:一個用於更改帖子作者的選擇框。
  • 縮略圖:特色圖像功能。
  • >摘錄:用於編寫自定義摘錄的文本題材。
  • >
  • 轉型:能夠打開反轉和pingbacks的能力。
  • >
  • 自定義場:自定義字段輸入字段。
  • >評論:打開/關閉評論。
  • >
  • 修訂:允許您的帖子進行修訂。
  • >
  • >後形式:添加郵政格式,請參閱“郵政格式”部分
  • >
  • > page-attributes:為頁面顯示的屬性框。這對於層次結構帖子類型很重要,因此您可以選擇父帖。
  • >

register_meta_box_cb

提供一個回調函數,在設置編輯表單的元框時將調用。回調函數獲取一個參數$ post,其中包含當前編輯帖子的WP_POST對象。 >

此功能對開發人員特別有用,可以使他們創建將顯示在CPT編輯屏幕中的自定義元框。

>

<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>
登入後複製
登入後複製
登入後複製
分類法

>將與此自定義帖子類型一起使用的一系列註冊分類法或post_tag。

has_archive
<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
登入後複製
登入後複製
登入後複製

>將此參數設置為true將為您的自定義帖子類型啟用檔案。 例如,假設您的cpt是書籍,訪問http://yoursite.com/books將顯示屬於書籍自定義帖子類型的帖子列表。

重寫

此參數允許您在查看單個帖子或存檔時定義自定義帖子類型的永久鏈接結構。

>默認值是正確的,並將$ post_type用作slug。要防止重寫,請設置為false。

>

讓我們來看看一些示例,以清楚起見。

>

說您創建了一個自定義帖子類型,但希望將URL slug從

>評論

更改為

>評估>,使用以下重寫參數將從http://示例更改URL 。 CPT存檔。 >每當您進行WordPress URL重寫時,請確保單擊“設置”中的“保存更改”按鈕>>永久鏈接以重新創建重寫規則。

>
<span>'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',</span>
登入後複製
基本上,slug定義了新的URL slug,而使用_front確定是否使用前基底座預付費永久鏈接結構。

>在_front上仍然不清楚嗎?讓我們看看一個例子。

>

說您有一個固定鏈接結構,帶有

博客

,如下圖所示。

>WordPress自定義帖子類型的權威指南

>如果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/。

請注意後者中博客的遺漏?這就是區別。

can_export

>使用此參數來決定是否可以通過WordPress導出工具導出屬於您的自定義帖子類型的帖子。默認情況下,這將設置為true。

query_var

此參數允許您控制用於獲取此類型帖子的查詢變量。

如果設置為true,它將允許您通過example.com/?book=harry-potter請求書籍自定義帖子類型,其中harry-potter是書本或帖子的url slug。

如果設置為字符串而不是true(例如

出版),則可以: “ query_var”的警告>

> query_var在您的cpt註冊數組中未定義,它默認為$ post_type,除非將其設置為false。

>警告。每當query_var的值作為查詢字符串中添加到URL中時,它將導致404。 >

>讓我澄清一下。假設您的cpt query_var的價值是審核,並且一個帶有鍵審查的鍵集的查詢字符串已添加到您的WordPress網站的任何URL中,以以下任何形式:

>

http://example.com/?review=some-random-string

http://example.com/a-post-slug-here/?foo=bar&review = some-random-string

    這將導致404發生。
  • >我實際上以艱難的方式了解了這一點。在我遇到這個問題時,我在WordPress Core Trac中創建了一張票,以將其報告為錯誤。
  • >我花了數週的時間才終於在核心WordPress團隊的一些成員回答我的票之前弄清楚了。
加速使用插件的自定義郵政類型設置

>現在我們已經覆蓋了基礎,現在是時候指出WordPress插件存儲庫中的許多插件,使創建自定義帖子類型非常簡單。

>

>示例包括(但不限於):>

自定義帖子類型UI

pods Framework

自定義郵政類型製造商

    結論
  • 在本教程中,我們了解了哪些自定義帖子類型以及它們的創建方式。 >
  • 這實際上是WordPress自定義帖子類型的系列中的第一個。在我的下一個教程中,我們將學習如何自定義各種管理員通知,如何將自定義分類法註冊到帖子類型中,並在CPT屏幕上添加上下文幫助選項卡。
  • >
  • 在此之前,愉快的編碼!
  • >

    > WordPress自定義帖子類型的常見問題

    >使用WordPress自定義帖子類型的好處是什麼?除了標準帖子和頁面之外,它們允許您為網站創建特定的內容類型。這可以包括投資組合,推薦,產品等。自定義帖子類型還提供了一種更有條理,更有效的方法來管理您的內容。它們可以通過特定的功能和字段來自定義,從而更容易以一致的方式輸入和顯示內容。

    >

    >如何在WordPress中創建自定義帖子類型?輸入WordPress涉及在主題的函數.php文件中添加幾行代碼。您需要使用register_post_type()函數,該函數允許您指定自定義帖子類型的名稱,標籤和其他功能。請記住,通過訪問永久鏈接設置頁面創建新的自定義帖子類型之後,要刷新您的重寫規則。

    我可以將自定義字段添加到我的自定義帖子類型嗎?

    是的,您可以添加自定義字段對於您的自定義帖子類型。可以使用add_meta_box()函數完成此操作,該功能使您可以在郵政編輯屏幕中添加一個新的元框。然後,您可以使用此Meta框輸入並顯示您的自定義帖子類型的其他信息。

    >如何在網站上顯示自定義帖子類型?

    >在您的網站上顯示自定義帖子類型可以通過在主題中創建新的模板文件來完成。該文件應命名為單{post-type} .php,其中{post-type}是您的自定義帖子類型的名稱。然後,您可以使用標準的WordPress循環顯示您的自定義帖子類型的內容。

    我可以使用插件創建自定義帖子類型嗎?

    >

    是的,有幾個可用的插件可以簡化流程創建自定義帖子類型。這些插件提供了一個用於創建和管理自定義帖子類型的用戶友好界面,而無需編碼。一些流行的選項包括自定義帖子類型UI,POD和工具集類型。

    >如何在我的自定義帖子類型中添加分類法? register_taxonomy()函數。此功能使您可以創建新的分類法,指定其標籤,並將其與您的自定義帖子類型相關聯。然後,您可以使用此分類法來對您的自定義帖子類型的內容進行分類和過濾。

    我可以使用層次結構創建自定義的帖子類型嗎?這可以通過在註冊自定義帖子類型時將“層次結構”參數設置為true來完成。分層自定義帖子類型可以具有父母和子女帖子,類似於頁面。

    >

    >如何自定義帖子類型自定義管理界面?

    >在註冊自定義帖子類型時,可以使用“支持”參數自定義帖子類型自定義admin界面。該參數允許您指定帖子編輯屏幕中的哪些功能,例如標題,編輯器,縮略圖和自定義字段。

    我可以在網站的搜索結果中包含自定義帖子類型嗎?

    >

    是的,您可以在網站的搜索結果中包含自定義帖子類型。這可以通過在註冊自定義帖子類型時將“ dubl_from_search”參數設置為false來完成。您還可以使用插件或自定義代碼來進一步自定義網站的搜索功能。

    >

    >如何刪除WordPress中的自定義帖子類型?

以上是WordPress自定義帖子類型的權威指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板