自2.9版以來,WordPress引入了使用自訂文章類型的功能。現在,隨著3.0版的發布,這一功能得到了進一步擴展,您可以為您的自訂文章類型創建面板。在這篇教程中,我們將向您展示如何在您的WordPress網站中實現自訂文章類型。
創建自訂文章類型 – 使用插件
截至3.0版本,WordPress尚未內建任何用戶界面來創建自訂文章類型。我們只有兩種選擇來創建自訂文章類型:使用插件或將其硬編碼到主題的functions.php文件中。首先,讓我們看看如何使用插件來創建自訂文章類型。
Custom Post Type UI
Custom Post Type UI是一個由WebDevStudios的Brad Williams開發的插件,它允許您輕鬆創建自訂文章類型和分類法。這個插件的一個最酷的功能是它會生成一段代碼,您可以將其粘貼到主題的functions.php文件中。然而這個插件的一個不足之處是無法在所有文章類型中共享分類法。
從Custom Post Type UI面板,點擊“新增”。
接下來,您需要填寫一些選項。“文章類型名稱”是WordPress用來查詢該類型所有文章的標識。“標籤”是顯示在您的儀表板側邊欄中的名稱,類似於常規的“文章”菜單。如果您展開“查看高級選項”,會看到一些更多的配置選項。大多數選項不言自明,例如“公開”和“顯示UI”。將“公開”設置為true時,自訂文章類型菜單將顯示在側邊欄中;將“顯示UI”設置為true時,會生成菜單面板。
“重寫”選項允許自訂文章類型使用SEO友好的WordPress網址(永久鏈接)。您可以將“自訂重寫短語”設置為任何您喜好的名稱。WordPress將使用這個短語來生成永久鏈接。因此,如果我們有範例網址example.com,並設置了一個自訂重寫短語“movies”,那麼您的自訂文章類型永久鏈接將會是example.com/movies。
WordPress的“查詢變數”功能允許您查詢自訂文章類型的文章。所以如果我們使用之前的範例,並將標題為“我的第一篇電影文章”的文章寫在Movies文章類型中,則可以進入example.com/?movies=my-first-movie-post進行訪問。因此查詢變數看起來像這樣:?posttypename。
最後,您可以選擇自訂文章類型所支持的不同功能,比如縮略圖/特色圖像和摘要。
創建自訂文章類型 – 使用functions.php文件
如果您更喜歡不使用插件來進行自訂文章類型,那麼只需將以下代碼添加到主題的functions.php文件中:
// 創建 Movies 文章類型
register_post_type('movies', array(
'label' => 'Movies',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'movies'),
'query_var' => true,
'supports' => array(
'title',
'editor',
'excerpt',
'trackbacks',
'custom-fields',
'comments',
'revisions',
'thumbnail',
'author',
'page-attributes',)
) );
讓我們剖析一下這段代碼。
register_post_type( $post_type, $args )
:此函數接受兩個參數,$post_type
是文章類型的名稱,$args
是一個參數數組。
- label:賦予文章類型的複數名稱,顯示在管理面板的側邊欄中。
- public:true/false。允許管理UI填充此類文章。
- show_ui:true/false。顯示或隱藏管理此文章類型的默認UI。
- capability_type:默認值:post。用於檢查讀取、編輯和刪除權限的文章類型。
- hierarchical:設置文章類型是否具有層次結構。
- rewrite:true/false。默認值:true。如果輸入了短語參數,則該短語名會被附加到文章中。
- query_var:true/false。將文章類型名設置為查詢變數。
- supports:默認值:title和author。設置文章類型所支持的不同功能。
請訪問WordPress Codex了解更多有關register_post_type()
的資訊。
顯示自訂文章類型的文章
要顯示自訂文章類型的文章,請在Loop中添加以下代碼。用您的文章類型名稱替換“name”。注意:您不需要在index.php文件中添加自訂文章類型。您可以創建一個自訂的WordPress頁面並在Loop中運行以下查詢。
$query = new WP_Query( 'post_type=name' );
要顯示多個文章類型的文章,將上述代碼更改為以下代碼。將“movies”替換為自己的文章類型名。
$query = new WP_Query( array(
'post_type' => array( 'post', 'movies' )
) );
上述代碼將顯示常規文章類型(post)和自訂文章類型(movies)的所有文章。
就是這樣。希望這篇教程對您有幫助。如果有任何問題,請在評論中發布。