如何創建自定義分類
已發表: 2016-09-07這是關於自定義帖子類型 (CPT) 主題的 3 部分系列文章的第二篇。 其他兩篇文章中討論的主題是:
- 自定義帖子類型以及如何創建它們
- 顯示自定義帖子類型 - 模板和查詢
在這篇博文中,我們將了解如何創建自定義分類以及如何將其與自定義帖子類型聯繫起來。
什麼是自定義分類法?
讓我們開始吧,什麼是分類法? 我喜歡 WordPress 的官方定義:分類法是將事物組合在一起的一種方式。
WordPress 有 4 種默認分類法:類別、標籤、鏈接類別和帖子格式。 當然,這四個中最常用的是類別和標籤。 類別分類法允許您將帖子分組到邏輯類別中,您可以自己定義。 標籤分類法非常相似,但可以更自由地使用。 分類中的單個組稱為術語。 每個分類法也有其“索引”頁面,其中顯示了相同術語的所有帖子(這些頁面的 URL 看起來像: 'taxonomy/term' )。
因此,自定義分類就是顧名思義,它是您自己的自定義帖子組(或自定義帖子類型)。 如果我們將書評作為自定義帖子類型,那麼一個好的自定義分類示例就是書籍類型。
只是為了刷新記憶:在上一篇關於自定義帖子類型的文章中,我們為我們的 Shaka 主題使用了 Testimonials 的示例 CPT,因此我們將在此處繼續使用它。
因此,我們有推薦信自定義帖子類型。 我們想要什麼樣的自定義分類法? 哪些組對這個用例有意義? 我們可以根據他們所指的服務對推薦進行分組。 所以我們可以有一個自定義的服務分類(衝浪、風箏、潛水)。 另一種自定義分類法可能是用戶體驗過此服務的位置等。
您可以為您能想到的每個邏輯組創建自定義分類法。
如何創建自定義分類法?
與自定義帖子類型一樣,有兩種方法可以註冊自定義分類。 您可以使用插件創建它,也可以編寫一些 PHP 代碼。
何時通過插件或代碼進行的原因和用例與 CPT 相同,因此請查看第一篇文章。
在這裡,我們將只看如何創建自定義分類以及如何將其與自定義帖子類型聯繫起來。
使用插件創建自定義分類法——簡單的方法
我們將使用Custom Post Type UI插件來註冊自定義分類,就像我們在上一篇文章中為 CPT 所做的那樣:
- 從您的 wp-admin 儀表板安裝並激活自定義帖子類型 UI 插件,
- 激活插件後,CPT UI 管理菜單項將可用。 轉到 CPT UI -> 添加/編輯分類
- 輸入分類名稱,複數和單數名稱,然後您必須選擇要附加此新創建的自定義分類的帖子類型(其他默認設置都可以)。 在我們的案例中,我們將自定義分類命名為:testimonial_service,並將其附加到我們在上一篇文章中註冊的推薦自定義帖子類型:
- 如果我們現在查看用於創建新的推薦自定義帖子類型的屏幕,您將在右側看到推薦服務元框以及左側的子菜單項:
- 就是這樣,我們現在可以添加新服務,這些服務將根據他們所引用的服務對推薦進行分組。
手動創建自定義分類 - 涉及編碼
是的,標題確實說涉及編碼,但實際上並非如此
您可以使用WP 代碼生成器生成自定義分類代碼。 只需單擊頂部的選項卡並輸入自定義分類的詳細信息。 生成器將輸出一個有效的自定義分類註冊碼:
// Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );

您可以將此代碼粘貼到新創建的插件或主題 functions.php 文件中。 我將代碼直接粘貼到了functions.php 文件中,因為對於這個示例來說更方便。 Testimonial Services 子菜單項已出現在 Testimonials 管理儀表板菜單下,並且元框也在那裡,就像上面插件設置中的屏幕截圖一樣。
自定義分類的手動註冊是有效的,所以讓我們分析一下代碼,看看它到底做了什麼。 代碼結構與第一篇文章中的自定義帖子類型註冊非常相似,但在一些設置和函數調用上有所不同:
- 我們將
custom_taxonomy_testimonial_service
函數掛鉤到 WPinit
操作中,以便註冊自定義分類, - 函數內的第一個代碼塊是一個標籤數組,您可以在其中更改創建/編輯自定義分類時將使用的單詞。 提示:我建議您使用轉義國際化函數。 因此,我將使用
esc_html_x()
和esc_html__()
而不是_x()
和__()
() , - 第二個塊是自定義分類的參數/設置數組。 你可以看看官方的 WP 文檔,看看你可以設置哪些參數,
- 使用
register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args );
調用時,我們註冊testimonial_service
自定義分類法,它將使用$args
參數“附加”到testimonials
自定義帖子類型。
現在我們已經註冊了自定義帖子類型和自定義分類,我們只需在我們的 WordPress 網站上顯示它們。 這將是關於自定義帖子類型的下一篇也是最後一篇博文的主題。