WordPress是一個非常強大的平台,它不僅提供最初為其創建的博客功能,還提供了更多功能。自創建以來,WordPress已發展成為一個龐大的CMS平台,該平台使幾乎任何目標的用戶都可以構建一個絕佳的場所。自定義菜單,窗口小部件,帖子類型和帖子格式等新功能都使用戶可以微調其網站,以盡可能最好的方式顯示內容。

今天,我們將探討WordPress中的自定義帖子類型。我們會發現它們是什麼如何或為何你會使用它們,以及最糟糕的是,我們將創建一個示例自定義類型後,可以作為指導用來創建自己的。首先,讓我們處理有關自定義帖子類型的一些常見問題:

什麼是自定義帖子類型?

自定義帖子類型僅是基本帖子,但在代碼內部定義了不同的參數集。常規帖子的帖子類型為post,頁面使用page,附件使用attachment等。自WordPress 3.0發布以來,您現在可以創建自己的自定義帖子類型。如果創建成功並且返回了正確的參數,您可以在網站上擁有獨一無二的自定義區域。

為什麼要使用自定義帖子類型?

假設您想以更結構化的方式在網站上劃分內容。當然,您可以在博客中定義類別,標籤,特定作者的帖子等,但是,如果您想要更多呢?

假設我們要在我們的網站上添加音樂評論部分。您希望能夠發布評論,一些特色圖片的專輯封面,藝術家的姓名,以及可能的流派。所有這些以及更多內容都可以使用自定義帖子類型添加。

由於我們的帖子類型與音樂評論有關,因此我們可以在網站上創建一個區域,以便用戶直接訪問。該部分的網址如下所示:http://mysite.com/music-reviews/“ music-reviews ”是我們自定義帖子類型的名稱。然後,該部分中,您可以創建該類型導致作為先進的東西固定鏈接URL的新職位:http://mysite.com/music-reviews/artist/album/。如何構建我所說的新創建部分完全取決於您,這就是為什麼它是WordPress的驚人功能。
在這一點上,這可能有點令人困惑,但是當我們構建自己的自定義帖子類型時,我將盡快詳細解釋。

我可以使用插件嗎?

當然!如果您不熟悉網站代碼編輯或需要快速操作,可以使用一些插件來幫助您創建自定義帖子類型。許多產品易於設置,並提供了驚人的結果。有些允許您自定義管理區域,以幫助您自己體驗用戶並提供要顯示給用戶的內容。我們的主題集合還包括與此功能相關的幫助。以下是一些我建議嘗試的列表。

自定義帖子類型用戶界面

這個插件提供了一個易於使用的界面來創建和管理WordPress中的自定義帖子類型和分類法。該插件是為WordPress 3.x創建的。該插件僅創建類型。您將需要自己將它們添加到主題。

插件自定義帖子類型用戶界面

插件:自定義帖子類型用戶界面

通過類型,您可以通過添加內容類型,自定義字段和分類法來自定義WordPress管理區域。您將可以製作WordPress管理員,並將其變成自己的內容管理系統。

插件類型

插件類型

添加您自己的自定義帖子類型

當WordPress 2.9引入時,它為用戶提供了首次向其網站添加自定義帖子類型的功能。WordPress 3.0允許用戶不僅添加自定義帖子類型,而且還可以使用更少的代碼行將其綁定到WordPress後端的管理區域中。較新的約定允許用戶和開發人員都可以添加自定義的可編輯選項字段,以適應其網站上顯示的內容。

如果您精通PHP並且對WordPress有所了解,那麼可以隨時使用該選項來添加自己的自定義帖子類型功能。當前,有兩種方法可以將自定義帖子類型添加到主題中:構建插件或將代碼添加到主題functions.php文件中。我們將使用優雅主題庫中的新Divi 2.0主題,將電影評論的示例自定義帖子類型添加到本地WordPress安裝中。下面,我將概述您可以採取的將自定義帖子類型添加到您的網站的步驟。

總覽

為了簡單的示例,我們將新代碼添加到functions.php主題文件夾中的文件中。值得注意的是,此代碼僅在特定的主題安裝上可用。如果您需要在多個主題中使用此自定義帖子類型功能,則需要創建一個插件。我今天不會詳細介紹如何執行此操作,但這與我們將在functions.php文件內部執行的操作非常簡單且相似。

步驟1 –註冊帖子類型

打開您的functions.php文件,並將以下代碼添加到其中。確保在關閉PHP標記之前添加了代碼。我將在下面解釋代碼。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Creates Movie Reviews Custom Post Type
function movie_reviews_init() {
    $args = array(
      'label' => 'Movie Reviews',
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'rewrite' => array('slug' => 'movie-reviews'),
        'query_var' => true,
        'menu_icon' => 'dashicons-video-alt',
        'supports' => array(
            'title',
            'editor',
            'excerpt',
            'trackbacks',
            'custom-fields',
            'comments',
            'revisions',
            'thumbnail',
            'author',
            'page-attributes',)
        );
    register_post_type( 'movie-reviews', $args );
}
add_action( 'init', 'movie_reviews_init' );

代碼定義

  • 函數movie_reviews_init() –在這裡,我們為自定義帖子類型創建了一個新函數。我們這樣做是為了限制與functions.php文件中任何其他代碼的衝突。將新代碼添加到任何文件(例如)時,也是一種最佳做法functions.php
  • 標籤 –標記為翻譯的帖子類型的複數描述性名稱。如果您未聲明自定義標籤,則WordPress默認使用自定義帖子類型的名稱。
  • public –帖子類型是打算通過管理界面還是前端用戶公開使用。WordPress默認將其設置為false,在此我們將其自定義帖子類型公開顯示為true。
  • show_ui –生成默認UI,用於在管理員中管理此帖子類型。您可以將其設置為true或false。為了方便起見,管理區域中的UI始終是一件好事。
  • capability_type –在這裡我們可以聲明將要處理的自定義帖子類型。它用於構建帖子或頁面的讀取,編輯和刪除功能。您可以選擇發布頁面
  • 分層的 –帖子類型是否是分層的(例如頁面)。或者用外行的話來說,是否可以聲明帖子類型的父頁面,子頁面等。這主要用於Pages。在這裡,我們將其聲明為false,因此我們的示例無需擔心。
  • 重寫 -此規則為true或false。默認值為true,因此,如果輸入slug參數,則將slug名稱放在帖子之前。我們的“電影評論”將被添加到該類型的每個新帖子之前。
  • query_var –此規則為true或false。它將帖子類型名稱設置為查詢變量。
  • menu_icon –此規則為管理區域聲明一個自定義圖標。在這裡,我們使用了WordPress中已經包含的稱為dashicons的簡潔資源。
  • 支持 –這通常是自定義帖子類型將支持的一系列功能。在這裡,我們有很長的清單。這些將綁定到管理區域。
  • register_post_type($ post_type,$ args); – register_post_type()是WordPress識別為自定義帖子類型生成器的函數。在此示例中,它接受兩個參數,它們是帖子類型本身的名稱以及您要調用的任何參數。
  • add_action(’init’,’movie_reviews_init’); –這行代碼返回或調用我們的函數,從而在我們的網站內觸發並顯示。

上面的某些解釋可能會使您的頭有些複雜。不過,請不要擔心,在我引導您完成該過程之後,您將開始了解上面的代碼如何使我們的自定義帖子類型起作用。如果您有疑問,可以查看WordPress官方Codex以獲取有關自定義帖子類型的更多信息,這不會出錯。

步驟2 –測試

現在,我們已經在functions.php文件中定義了自定義帖子類型,請轉到您的WordPress儀表板,看看我們正確執行了所有操作。現在,您應該在屏幕左側看到一個名為電影評論的新菜單項。

儀表板自定義帖子類型添加

我們的自定義帖子類型已添加到WordPress的管理區域。

如果將鼠標懸停在我們新添加的自定義帖子類型的“ 電影評論”部分,您將看到另一個菜單,其中包括“電影評論”和“添加新內容”。

電影評論添加

查看電影評論或添加電影評論

如果單擊添加新,您將看到一個熟悉的界面,就像WordPress上的常規帖子一樣。完全沒有驚喜,但我們已經成功更新了管理區域。接下來,我們需要將這些自定義帖子類型添加到我們的網站中,以便它們顯示在前端。如果您還記得以前的代碼supports,特別是本節的內容,您會看到,在電影評論下添加新帖子時,支持中列出的所有功能都可以使用。

01
02
03
04
05
06
07
08
09
10
11
12
'supports' =>; array(
        'title',
        'editor',
        'excerpt',
        'trackbacks',
        'custom-fields',
        'comments',
        'revisions',
        'thumbnail',
        'author',
        'page-attributes',)
    );

 

添加新評論

在這裡,我們添加了一個新的電影評論。

步驟3 –輸出電影評論

現在,我們需要添加使發布的內容實際出現在網站前端的功能。讓我們創建一個新菜單,該菜單將顯示指向“電影評論”的導航鏈接。轉到管理區域中的外觀標籤,然後點擊菜單標籤。在這裡,我們稱其為主導航。我將添加一個名為“ 電影評論”的頁面以及一些示例頁面以進行演示。這是我的屏幕當前外觀:

菜單設置

在這裡,我們為主要導航設置菜單結構。

因此,如果我們轉到首頁,您應該會看到類似的內容。記住我正在使用新的Divi 2.0主題。目前,我還沒有對其進行太多自定義。請注意,標題中的菜單項“電影評論”已更新,顯示了我們要尋找的內容。讓我們添加一個新的電影評論。在這裡,您將看到我創建的新帖子,其中包含一些文本,標題和特色圖片。

*有關添加新帖子的快速說明。對於當前主題,我已經設置了我的永久鏈接。您應該這樣做,以免從頭到尾發生衝突。轉到“設置”區域,然後查找永久鏈接。將其更改為您喜歡的任何一個。通常,越簡單越好。

電影評論

添加新的電影評論

如果單擊查看帖子,則可以看到該帖子在網站上的顯示方式。注意URL。就我而言,我稱自己的網站為dev,但我的網址為localhost:8888/dev/movie-reviews/fargo/。從理論上講,一切都可以正常運行,但是我們仍然希望所有電影評論都出現在我們創建的名為“ 電影評論”的頁面上,就像我們的最新博客文章列表一樣。如果導航到該頁面,您將看到它為空白。

電影評論空白

我們的電影評論頁面為空白。我們需要添加一些代碼以顯示我們的自定義帖子類型。

為了使我們的電影評論出現在頁面上,我們需要創建一個新的模板文件。

步驟4 –創建自定義帖子類型模板

page-movie-reviews.php在主題文件夾內創建一個新文件。
在文件夾內,您需要在下面添加代碼以告訴WordPress確實是一個新的模板文件。

01
02
03
/**
 * Template Name: Movie Reviews
 **/

由於我們已經在使用Divi 2.0主題,因此我將復製page.php文件中的代碼以保持我們的網站一致。您可以對正在使用的任何主題執行相同的操作。只要確保包含上面的代碼,WordPress就可以將其識別為模板。

現在,我們需要返回到管理區域,並更改用於“ 電影評論”頁面的模板。我們的新模板應在“ 頁面屬性”下的下拉菜單中顯示為“ 電影評論”

變更模板

將我們的模板從默認更改為電影評論

好的,現在有了模板,我們需要修改一些代碼以輸出自定義帖子類型。您的page.php文件應具有如下所示的循環:

01
02
03
04
<?php while ( have_posts() ) : the_post(); ?>
// Your code
<?php endif; ?>
<?php endwhile; ?>

您將需要通過添加以下代碼來修改循環:

01
02
03
04
05
06
<?php
 $query = new WP_Query( array('post_type' => 'movie-reviews', 'posts_per_page' => 5 ) );
 while ( $query->have_posts() ) : $query->the_post(); ?>
// Your code e.g. "the_content();"
<?php endif; wp_reset_postdata(); ?>
<?php endwhile; ?>

我們在WordPress循環中添加了一個針對我們自定義帖子類型的新查詢。該$query變量在循環中使用,以允許在我們的“電影評論”頁面上顯示多個。使用此功能後,您的電影評論頁面現在將輸出我們之前製作的電影評論。

電影評論輸出

添加代碼後,我們的自定義帖子類型起作用。

我想輸出的一件事是縮略圖。您的page.php文件可能已經將此代碼嵌入了您的代碼中。您會知道的,因為您會看到一些圖像。如果沒有,那麼我們將再添加一行代碼。就我而言,我將其添加到下面的代碼塊中:

01
02
03
04
05
06
07
08
<div class="entry-content">
 <?php
    if ( has_post_thumbnail() ) {
      the_post_thumbnail();
    }
      the_content();
    ?>
</div>

我們使用if語句首先確定在管理員中創建帖子時是否設置了縮略圖。如果是,它將顯示,如果不是,則WordPress將忽略嘗試查找縮略圖。我們的電影評論如下所示:

電影評論完成

我們的第一部電影評論已成功添加。

第5步–添加更多電影評論

讓我們添加更多評論。我還將在管理區域內調整電影縮略圖的大小。您現在將看到,我們可以傳播一組評論,這些評論佔據了我們網站上全新的完全定制的部分。太酷了!

電影觀看列表

更多電影評論的列表。

整理起來

我們沒有深入研究每種自定義帖子類型的輸出方式樣式,但這不是本教程的目標。目的是向您展示多種您可以根據自己的喜好自定義WordPress的方法。自定義帖子類型非常強大。我們的電影評論示例可以更高級,並顯示諸如不同類別的電影(戲劇,驚悚片,喜劇等),作者,開始評分,每個電影評論的自定義單頁等等內容。您可以實現的目標實際上沒有任何限制。

WordPress通過自定義帖子類型等新功能已變得如此強大。觸手可及的強大功能使您可以建立自己對網站的想法,無論是電影評論,電子商務解決方案,截屏還是任何您能想到的。希望隨著您的學習,您對WordPress有了更多的了解。本教程可能對某些人來說是遙不可及的,但是我邀請您回去繼續學習,直到創建類似的東西。您將通過做中學到最好的方法。