WordPress 自定義帖子類型

已發表: 2023-02-12

利基網站有時會有內容組織需求,而 WordPress 的原生帖子類型無法滿足這些需求。 出於這個原因,您可能想知道在組織和顯示您的內容時是否有其他選擇。

幸運的是,自定義帖子類型 (CPT) 是 WordPress 中的一個選項,它使您能夠創建一種新的內容並根據自己的喜好對其進行自定義。 如果您運行的 WordPress 網站的內容元素超出了傳統的帖子和頁面,這將非常有幫助。

在本文中,我們將解釋自定義帖子類型及其結構。 此外,我們將向您介紹如何手動和使用 WordPress 插件創建 WordPress 自定義帖子類型。 如果你準備好了,讓我們開始吧!

目錄
1.什麼是自定義帖子類型?
2.如何創建自定義帖子類型 – 插件方法(4 個步驟)
2.1. 第 1 步:下載專用插件
2.2. 第 2 步:添加新的自定義帖子類型
2.3. 第 3 步:配置您的新帖子類型
2.4. 第 4 步:創建自定義字段
3.如何創建自定義帖子類型 – 手動方法(分 3 個步驟)
3.1. 第 1 步:找到並打開您的 functions.php 文件
3.2. 第 2 步:插入自定義帖子類型代碼
4.第 3 步:添加您網站的文本域
5.在您的站點上顯示自定義帖子類型(2 種方法)
5.1. 1.使用默認存檔模板
5.2. 2.將它們顯示在您的首頁上
6.使用 WP Engine 自定義您的網站

什麼是自定義帖子類型?

當您在 Web 服務器上安裝該軟件時,您的 WordPress 數據庫會自動創建一個wp_posts表。 該表包含一個post_type列,其中存儲了我們將要討論的信息。

您可能熟悉幾種 WordPress 帖子類型,包括:

  • 帖子:傳統的“博客”WordPress 帖子,按時間倒序顯示,可以分配類別和標籤。
  • 頁面:這些可以使用父子關係構建以創建層次結構,但通常不分配類別。
  • 導航菜單:幫助訪問者瀏覽您網站的鏈接列表。
  • 修訂:這些保留對其他帖子類型的更改日誌或歷史記錄,以防您需要回滾到以前的版本。
  • 附件:您添加到帖子或頁面中的任何媒體也會存儲為 WordPress 帖子類型,並且您的圖像或視頻文件數據存儲在wp_postmeta表中。

此外,WordPress 包括兩個主要的分類結構。 類別和標籤是將帖子分配給不同組的主要方式。 雖然您可以為 CPT 分配類別和標籤,但您可能會發現還需要創建自定義分類法,以便更好地組織您的內容。

這可能適用的一個例子是電子商務商店中的產品。 您可以創建一個“產品”CPT,其中包含定價、數量等信息的自定義字段。 然後,使用自定義分類法,您可以創建選項,以您可能想到的任何方式對產品進行分類。

如何創建自定義帖子類型 – 插件方法(4 個步驟)

創建 CPT 的最簡單方法是使用 WordPress 插件。 讓我們來看看這個過程是如何工作的。

第 1 步:下載專用插件

對於此示例,我們將使用 Pods – 自定義內容類型和字段插件。

該工具使您能夠輕鬆創建和自定義您自己的帖子類型和自定義分類法。 通過 WordPress插件 > 添加新菜單安裝插件後,您還需要激活它。

第 2 步:添加新的自定義帖子類型

接下來,您會在管理菜單中找到一個新的Pods 管理選項。 從那裡您可以選擇Add New ,然後在創建新內容類型或擴展現有內容類型之間進行選擇。

對於此示例,我們將選擇Create New來演示可用的配置選項。

第 3 步:配置您的新帖子類型

“配置”頁面上,您將填寫新內容類型的選項。

您可以在此處為您的新內容類型輸入單數和復數標籤,以及選擇您正在創建的自定義內容類型。 這可以是帖子類型、分類法或設置頁面。

第 4 步:創建自定義字段

創建標籤後,您將被帶到另一個設置頁面,您可以在其中添加新字段等。

正如您在上面看到的,在我們的 WordPress 產品自定義帖子類型中,我們為價格添加了一個自定義字段。

完成這些設置後,您可以選擇保存 Pod。 您現在可以在 WordPress 主菜單中找到您的產品自定義帖子類型。 從那裡您可以導航到Product > Add New ,然後開始使用此 WordPress 帖子類型創建內容。

您還會在帖子編輯器中看到一個Pods Shortcode按鈕選項。 這使您能夠添加來自各種 Pod 項目的字段信息。 您之前創建的任何自定義字段也會顯示在您的帖子編輯窗口下方,以便於訪問。

編輯內容後,您可以像通常在 WordPress 中一樣保存和發布自定義帖子類型。

如何創建自定義帖子類型 – 手動方法(分 3 個步驟)

您還可以通過編輯網站的functions.php文件手動創建 CPT。 我們建議您在開始之前製作一份文件副本或備份您的網站。

第 1 步:找到並打開您的functions.php文件

您可以通過您的網站託管服務商在您的 cPanel 中的文件管理器或使用文件傳輸協議 (FTP) 應用程序(如 FileZilla)訪問您網站的文件。 連接後,您將導航到您的 WordPress 根文件夾,然後導航到wp-content > themes > your-theme

請務必注意,每個主題都有自己的functions.php文件。 如果您選擇使用手動過程來創建 CPT,那麼當您更改 WordPress 主題時,它們將會丟失。 如果您想確保您的自定義類型無論如何都得到保留,最好改用插件方法。

第 2 步:插入自定義帖子類型代碼

您可以在 CPT 中包含的詳細信息量非常大。 我們將使用一個簡單的示例來演示如何創建“產品”CPT。 您會看到與之前 WordPress 插件設置中可用的相同類型的標籤選項和設置:

 //* 創建自定義帖子類型
add_action('init', 'add_custom_post_type');
函數 add_custom_post_type()
{
     register_post_type( 'my_products',
           大批(
               '標籤'=>數組(
                    '名稱'=>'產品',
                    'singular_name' => '產品',
                    'add_new' => '添加新產品',
                    'add_new_item' => '添加新項目',
                    'edit_item' => '編輯產品',
                    'new_item' => '新產品',
               ),
               '公共' => 真,
               'has_archive => 真,
               '重寫'=>數組(
                         '鼻涕蟲' => '產品'
               ),
               '支持'=>數組(
                         '標題',
                         '編輯',
                         '作者',
                         '縮略圖',
                         '摘抄',
                         “引用”,
                         '自定義字段',
                         “修訂”,
                         '頁面屬性'
               ), 
          )
     );

}

您需要將此代碼添加到站點主題文件夾中functions.php文件的末尾。 當然,您還可以在 CPT 代碼中添加更多選項,這些選項可以在 GitHub 等資源站點上找到。

第 3 步:添加您網站的文本域

如果您的網站已準備好翻譯並且您希望 CPT 也準備好,則需要找到您網站的文本域並確保它包含在您用於 CPT 的代碼中。

您可以在 WordPress 主題的style.css文件中找到您網站的文本域。

打開style.css後,您會在文件的標題中找到“文本域”信息。

然後您可以在自定義中引用文本域。 例如,在上面示例代碼的“labels”數組中,您可以在“Products”之後添加文本域:

 'name' => 'Products', 'twentynineteen',

您可以將文本域添加到自定義帖子類型中的所有標籤,以使其可翻譯。

在您的站點上顯示自定義帖子類型(2 種方法)

創建 CPT 後,在您的網站上顯示它們時,您有幾個選擇。 我們將介紹您可以使用的兩種方法。

1.使用默認存檔模板

確保您的 CPT 出現在您網站上的一種方法是調整您用來創建它們的代碼。 您可以在數組中包含以下字符串:

 'has_archive' => 真,

完成此操作後,您的 CPT 將根據您主題的存檔頁面模板擁有自己的存檔頁面。 然後,您可以使用 URL www.yoursite.com/customposttype訪問新的 CPT 存檔頁面。

2.將它們顯示在您的首頁上

創建 CPT 的好處之一是能夠將某些內容與常規博客文章分開。 但是,如果您想確保此內容出現在您的首頁上,您需要在主題的functions.php文件中添加一小段代碼:

 // 在主頁上顯示自定義帖子類型,添加到 functions.php

add_filter( 'pre_get_posts', 'my_get_posts' );

函數 my_get_posts( $query ) {

如果 (is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'products' ) );
// 添加 cpt,在本例中為 'products' 到數組

返回$查詢;
}

當然,您還可以自定義此片段以包含您的 CPT 姓名和其他關鍵詳細信息。

使用 WP Engine 自定義您的網站

自定義帖子類型是一種動態方式,可讓您進一步自定義您的 WordPress 網站,並向您網站的訪問者提供組織良好的自定義內容類型。 在 WP Engine,我們為用戶和開發人員提供最好的資源,可以幫助您為客戶創造令人難以置信的數字體驗。

為了開發真正引人入勝的數字體驗,您需要為滿足您的 WordPress 需求而量身定制的託管 WordPress 託管解決方案。 立即查看我們的創新資源和託管計劃!