分类、标签和自定义分类法(Taxonomies)彼此相关,且容易混淆。

我们将以构建一个食谱网站主题为例,来拆解分类、标签和自定义分类法的概念。

在我们的食谱网站上,分类可以是早餐、午餐、晚餐、开胃菜、汤类、沙拉、配菜和甜点。所有食谱都将归入这些类别中,但用户可能想要搜索特定的内容,比如巧克力甜点或姜味鸡肉晚餐。

巧克力、生姜和鸡肉都是标签的例子。它们提供了另一层具体性,为用户赋予意义。

最后还有自定义分类法(Taxonomies)。实际上,分类和标签是默认分类法的示例,它们只是组织内容的一种方式。自定义分类法是 WordPress 中用于对内容和数据进行分类的方法。使用自定义分类法时,您是将相似的事物归为一组。该自定义分类法指的是这些组的总和。与文章类型一样,存在许多默认的自定义分类法,您也可以创建自己的。

食谱通常按类别和标签组织,但还有一些其他有用的方法可以将食谱分解得更便于用户使用。例如,食谱网站可能希望有一种简单的方法来按烹饪时间显示食谱。一个包含 0-30 分钟、30 分钟到一小时、1 到 2 小时、2 小时以上的自定义“烹饪时间”分类法将是一个很好的划分。此外,“烹饪方法”,如烧烤、烤箱、炉灶、冰箱等,将是与该网站相关的另一个自定义分类法的示例。还可以有一个关于食谱辣度的自定义分类法,然后给出一个从 1-5 的辣度评级。

默认分类法

WordPress 中的默认分类法包括:

  • categories:一种层次化的分类法,用于组织 文章(Post Type)类型的内容;
  • tags:一种非层次化的分类法,用于组织 文章(Post Type)类型的内容;
  • post formats:创建帖子格式的一种方法。您可以在Post Formats页面了解更多关于这些内容的信息。

术语(Terms)

术语是自定义分类法中的项目。例如,如果您有动物(Animal)分类法,那么您的术语就是狗、猫和羊。术语可以通过 WordPress 后台创建,或者您可以使用 wp_insert_term()函数。

数据库架构

自定义分类法和术语存储在以下数据库表中:

  • wp_terms – 存储所有术语;
  • wp_term_taxonomy – 将术语放置在某个分类法中;
  • wp_term_relationships – 关联分类法与对象(例如,类别到文章)。
taxonomy-schema

模板

WordPress 为分类、标签或自定义分类法提供了几种不同的层次结构的模板。有关其结构和使用的更多详细信息,请参阅Taxonomy Templates页面。

自定义分类法

在 WordPress 中创建新的自定义分类法是可能的。例如,您可能想在书评网站上创建一个作者(author)自定义分类法,或在电影网站上创建一个演员(actor)自定义分类法。与自定义文章类型一样建议您将此功能放在插件中。这样可以确保当用户更改其网站设计时,他们的内容在插件中得到保留。

您可以在Plugin Developer Handbook.中阅读更多关于创建自定义分类法的内容。