##分类学概论 要了解分类标准是什么,他们做什么,请阅读分类标准介绍。 ##定制分类 WordPress还允许开发人员创建自定义分类。 当想要创建不同的命名系统并使它们以可预测的方式在幕后访问时,自定义分类法是有用的。 随着分类系统的发展,“分类”和“标签”的结构并不是非常有限的,所以开发者创建自己的可能是有益的。 ##为什么要使用自定义分类法? 你可能会问:“为什么要打造自定义分类法,当我可以按类别和标签进行组织时? 好吧,让我们用一个例子。假设我们有一个厨师的客户,希望你创建一个网站,她将使用原始食谱。 组织网站的一种方法可能是创建一个名为“食谱”的自定义帖子类型来存储她的食谱。然后创建一个分类“课程”,将“开胃菜”与“甜点”分开,最后将分类“成分”从“巧克力”中分离出来。 这些团体可以使用“分类”或“标签”来定义,您可以拥有一个“课程”类别,其中包含“开胃菜”和“甜点”子类别,以及每种成分含有子类别的“成分”类别。 使用自定义分类法的主要优点是您可以独立于类别和标签参考“课程”和“成分”。他们甚至在管理区域获得自己的菜单。 此外,创建自定义分类法允许您构建自定义界面,这将简化客户的使用寿命,并使数据插入到其业务性质的过程中。 现在想象这些自定义分类法和界面是在一个插件中实现的;您刚刚构建了可以在任何WordPress网站上重复使用的自己的Recepies插件。 示例:课程分类 以下示例将向您展示如何创建一个将自定义分类“课程”添加到默认帖子类型的插件。 尝试创建自己的插件之前,请务必阅读插件基础章节。 ##步骤1:开始之前 转到帖子>添加新页面。你会注意到你只有类别和标签。 没有自定义分类标签 ##步骤2:创建一个新的插件 使用init动作钩子注册分类“课程”的帖子类型“post”。 ``` <?php /* * Plugin Name: Course Taxonomy * Description: A short example showing how to add a taxonomy called Course. * Version: 1.0 * Author: developer.wordpress.org * Author URI: https://wordpress.slack.com/team/aternus */ function wporg_register_taxonomy_course() { $labels = [ 'name' => _x('Courses', 'taxonomy general name'), 'singular_name' => _x('Course', 'taxonomy singular name'), 'search_items' => __('Search Courses'), 'all_items' => __('All Courses'), 'parent_item' => __('Parent Course'), 'parent_item_colon' => __('Parent Course:'), 'edit_item' => __('Edit Course'), 'update_item' => __('Update Course'), 'add_new_item' => __('Add New Course'), 'new_item_name' => __('New Course Name'), 'menu_name' => __('Course'), ]; $args = [ 'hierarchical' => true, // make it hierarchical (like categories) 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => ['slug' => 'course'], ]; register_taxonomy('course', ['post'], $args); } add_action('init', 'wporg_register_taxonomy_course'); ``` ##步骤3:查看结果 激活您的插件,然后转到帖子>添加新的。 你应该看到一个新的元框为您的“课程”分类。 courses_taxonomy_post_screen ##代码细分 以下讨论分解了上面使用的代码描述功能和参数。 函数wporg_register_taxonomy_course包含注册自定义分类法所需的所有步骤。 $ labels数组包含自定义分类标签。 这些标签将用于在管理区域中显示有关分类法的各种信息。 $ args数组包含创建自定义分类时将使用的配置选项。 函数register_taxonomy()使用$ args数组为配置创建一个新的分类标准,其中标题课程为Post Post Type。 函数add_action()将wporg_register_taxonomy_course函数执行关联到init动作钩子。 ## $ args $ args数组包含自定义分类法的重要配置,它指示WordPress分类法如何工作。 看一下register_taxonomy()函数,以获取所接受参数的完整列表,以及它们中的每一个。 ##总结 通过我们的课程分类示例,WordPress将自动为课程分类法创建归档页面和子页面。 档案页面将使用“课程”(/ course / term-slug /)在/ course /中,并在其下生成子页面。 ##使用你的分类法 WordPress具有许多功能,用于与您的自定义分类法和其中的条款进行交互。 这里有些例子: - the_terms: Takes a Taxonomy argument and renders the terms in a list. - wp_tag_cloud: Takes a Taxonomy argument and renders a tag cloud of the terms. - is_taxonomy: Allows you to determine if a given taxonomy exists.