如何创建自定义分类
已发表: 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 网站上显示它们。 这将是关于自定义帖子类型的下一篇也是最后一篇博文的主题。