如何创建和管理 WordPress 自定义分类法?

已发表: 2022-09-15
目录隐藏
1.什么是分类?
1.1。 平面与分层分类法
2.为什么需要 WordPress 自定义分类法?
3.分类模板层次结构
3.1。 类别层次结构
3.2. 标签层次结构
4.如何使用代码创建自定义分类法?
4.1。 创建一个新插件
4.2. 创建新帖子
4.3. 分解代码
5.如何使用插件创建 WordPress 自定义分类法?
5.1。 为自定义帖子添加分类法
5.2. 将自定义分类法添加到导航菜单
6. Pods——自定义内容类型和字段
7.如何管理和批量编辑自定义分类法?
8.结论

您想在 WordPress 中更好地组织您的内容吗? 您需要创建自定义分类法。

默认情况下,WordPress 允许您使用类别和标签来组织内容。 但是,使用自定义分类法,您可以灵活地对内容进行进一步排序。

但是分类法的设置也具有挑战性。

因此,这篇文章将向您展示如何创建和使用 WordPress 自定义分类法。

事不宜迟,让我们开始了解分类法。

什么是分类学?

简单来说,分类学是分类的科学术语,特别用于将生物分类为组或类型。

一个例子是如何对生物进行分类:

  • 植物
    • 树木
      • 榕树
      • 芒果
    • 花卉
      • 莲花
      • 玫瑰
  • 动物
    • 哺乳动物
      • 大象
      • 狮子
    • 爬行动物
      • 鳄鱼

平面与分层分类法

您可以将分类法制作成平面(只有一个级别)或分层(许多级别)。

例如,大象包括在哺乳动物之下,而哺乳动物本身则包括在动物之下,而动物之下则包括在生物之下。 因此,任何标有哺乳动物的项目同时是这三个层次“类别”的成员。

如果您分别考虑所有这些树:

  • 榕树
  • 芒果
  • 檀香

这是一个扁平的分类法,因为它们都处于同一水平。

为什么需要 WordPress 自定义分类法?

与分类法一样,WordPress 分类法是一种组织内容的方式,但在这里,您可以组织帖子组和自定义帖子类型。

默认情况下, WordPress 带有两个分类法,称为 categories 和 tags

因此,虽然有许多内置元素,但 WordPress 也方便开发人员创建自定义元素。 此自定义功能也扩展到帖子类型和分类法。

但是,如果您使用的是自定义帖子类型,那么类别和标签可能看起来并不适合所有内容类型。 内容越多,就越难以将它们分类为类别和标签。

使用自定义分类法,您可以创建复杂的结构,将您的内容分成不同的部分。 这些也可以按层次组织,就像我们上面的生物分类示例一样。

例如,您可以创建一个名为“电影”的自定义帖子类型,并使用名为“流派”的自定义分类对其进行排序。 您可以根据需要添加动作、浪漫、喜剧等类型。 这将使您和您的读者可以轻松地按每种类型对电影进行分类。

使用自定义分类法的主要优点是您可以独立于类别和标签来引用它们。 他们甚至在 WordPress 管理区域中获得了自己的详细描述。

在 WordPress 中,标签是扁平的,而类别是分层的。 换句话说,您可以将类别相互嵌套,而标签都在同一级别。

分类模板层次结构

WordPress 按照模板层次结构确定的顺序显示帖子。

category.phptag.phptaxonomy.php模板允许按分类过滤的帖子与未过滤的帖子或按不同分类过滤的帖子区别对待。

注意:帖子是指任何帖子类型——帖子、页面、自定义帖子类型等。这些文件让您可以定位特定的分类法或特定的分类法术语。 例如:

  • 分类-{分类}-{术语}.php
  • 分类-{分类}.php
  • 标签-{slug}.php
  • 标签-{id}.php
  • 类别-{slug}.php
  • 类别-{ID}.php

因此,例如,您可以在一个看起来与在其他类别中过滤的帖子不同的页面上格式化名为 news 的动物分类中的所有帖子。

archive.php模板提供了最通用的控制形式,为所有档案提供了布局; 即显示帖子列表的页面。

类别层次结构

对于类别,WordPress 会查找category-{slug}.php文件。 如果它不存在,WordPress 然后查找下一个层次级别的文件category-{ID}.php等等。 如果 WordPress 找不到任何专门的模板或 archive.php 模板文件,它会使用 index.php 恢复到默认行为。

下面列出了类别层次结构:

  • category-{slug}.php:例如,如果类别的 slug 名为“news”,WordPress 将查找名为 category-news.php 的文件。
  • category-{ID}.php:例如,如果类别的 ID 为“6”,WordPress 将查找名为 category-6.php 的文件。
  • 类别.php
  • 存档.php
  • 索引.php

标签层次结构

对于标签,WordPress 会查找tag-{slug}.php文件。 如果它不存在,WordPress 然后查找下一个层次级别的文件, tag-{ID}.php等等。 如果 WordPress 找不到任何专用模板或 archive.php 模板文件,它将使用 index.php 恢复为默认行为。

标签层次结构如下所示:

  • tag-{slug}.php:例如,如果标签的 slug 名为“sometag”,WordPress 将查找名为 tag-sometag.php 的文件。
  • tag-{id}.php:例如,如果标签的 ID 是“9”,WordPress 会查找名为 tag-9.php 的文件。
  • 标记.php
  • 存档.php
  • 索引.php

如何使用代码创建自定义分类法?

想象一下,这些自定义分类法和接口是在插件内部实现的。 您刚刚构建了自己的 Fiction 插件,可以在任何 WordPress 网站上重复使用。

例如:课程分类。

以下示例将向您展示如何创建一个插件,将自定义分类“课程”添加到默认帖子类型。

注意– 添加自定义分类的代码不必在其自己的插件中。 如果需要,它可以包含在主题中或作为现有插件的一部分。

创建一个新插件

使用 init 操作挂钩为帖子类型“Post”注册分类“Course”。

/*
* 插件名称:课程分类
* 描述:一个简短的例子,展示了如何添加一个名为 Course 的分类。
* 版本:1.0
* 作者:developer.wordpress.org
* 作者 URI:https://codex.wordpress.org/User:Aternus
*/
 
功能 wporg_register_taxonomy_course() {
     $标签=数组(
         'name' => _x('Courses', 'taxonomy general name'),
         'singular_name' => _x('Course', 'taxonomy single name' ),
         'search_items' => __( '搜索课程' ),
         'all_items' => __('所有课程'),
         'parent_item' => __( '家长课程' ),
         'parent_item_colon' => __( '家长课程:' ),
         'edit_item' => __( '编辑课程' ),
         'update_item' => __( '更新课程' ),
         'add_new_item' => __('添加新课程'),
         'new_item_name' => __( '新课程名称' ),
         'menu_name' => __( '课程' ),
     );
     $args = 数组(
         'hierarchical' => true, // 使其分层(如类别)
         '标签' => $标签,
         'show_ui' => 真,
         'show_admin_column' => 真,
         'query_var' => 真,
         '重写' => ['slug' => '课程'],
     );
     register_taxonomy('课程',['帖子'],$args);
}
add_action('init', 'wporg_register_taxonomy_course');

创建新帖子

激活您的插件。 转到WordPress admin panel > Posts > Add New 。 除了类别和标签之外,您应该会看到一个用于“课程”分类的新元框。

在帖子区域中添加了分类

分解代码

下面的讨论分解了上面使用的描述函数和参数的代码。

函数wporg_register_taxonomy_course包含注册自定义分类所需的所有步骤。

$labels数组保存自定义分类的标签。 这些标签将用于在管理区域中显示有关分类的各种信息。

$args数组包含创建自定义分类时将使用的配置选项。

函数 register_taxonomy() 使用 $args 数组为帖子“帖子类型”创建一个带有标识符 course 的新分类法进行配置。

函数 add_action() 将wporg_register_taxonomy_course函数执行与 init 动作挂钩联系起来。

$args :$args 数组包含自定义分类的重要配置,它指示 WordPress 分类应该如何工作。

如何使用插件创建 WordPress 自定义分类法?

如果您不从事开发并且不想陷入编码麻烦中,那么使用插件是您的最佳选择。

我们将考虑使用自定义帖子类型 UI 插件(1+ 百万活跃安装)来创建 WordPress 自定义分类法。 下载、安装和激活插件,就像对任何 WordPress 插件一样。

假设我们已经创建了一个名为“事件”的自定义帖子类型。 因此,请确保在开始创建分类法之前创建了自定义帖子类型。

接下来,转到WordPress admin panel > CPT UI > Add/Edit Taxonomies以创建您的第一个分类。

创建新的 WordPress 自定义分类法

在此屏幕上,您需要执行以下操作:

  • 为分类创建一个 slug。 此 slug 用于 URL 和 WordPress 搜索查询。 这只能包含字母和数字,它会自动转换为小写字母。
  • 接下来,您将为自定义分类填写复数和单数名称。
  • 从那里,您可以选择单击“根据所选标签填充其他标签”链接。 如果您这样做,那么插件将自动为您填写其余的标签字段。

现在,向下滚动到Additional Labels部分。 在此区域中,您可以提供分类的描述、分类的自定义管理菜单名称和其他标签。

当您编辑和管理该特定自定义分类的内容时,这些标签会在您的 WordPress 仪表板中使用。

分类附加标签

接下来,我们有Settings选项。 在此区域中,您可以为您创建的每个分类设置不同的属性。 每个选项都有一个详细说明它的作用的描述。

分类设置

在这里,我们选择使这个分类法分层。 这意味着我们的分类“受众”可以有子主题。 例如,名为“学生”的主题可以包含学院、大学等子主题。

您可以在 WordPress 仪表板上的屏幕下方选择许多其他设置。

最后,单击底部的Add Taxonomy按钮以保存您的自定义分类。

之后,继续并在 WordPress 内容编辑器中编辑与此分类相关的帖子类型以开始使用它。

为自定义帖子添加分类法

现在您已经知道如何创建自定义分类法,让我们通过一个示例来使用它们。

由于我们有一个名为“事件”的自定义帖子类型,因此它类似于您创建常规博客帖子的方式。

转到您的WordPress admin panel > Events > Subjects以添加术语或主题。

在此屏幕上,写下主题的名称、slug、父级(如果有)和描述。

单击Add New Subject按钮以创建新主题。 您新添加的术语现在将出现在右栏中。

为帖子类型添加分类法

现在您有了一个可以在博客文章中使用的新术语。

您还可以在编辑或编写该特定帖子类型下的内容时直接添加术语。

将自定义分类法添加到导航菜单

您可能还希望在网站的导航菜单中显示主题。

转到WordPress admin panel > Appearance > Menus ,然后在自定义分类选项卡下选择要添加的术语。

将分类添加到导航菜单

不要忘记单击“ Save Menu ”按钮来保存您的设置。 您现在可以访问您的网站以查看您的菜单。

而已。 这并不像看起来那么困难。 有关更多详细信息,请参阅插件文档。

Pods – 自定义内容类型和字段

您可能想考虑使用 Pods 插件(超过 10 万次活动安装)来创建 WordPress 自定义分类法。

Pods 插件提供了一个简单的界面,允许您创建和编辑自定义帖子类型、分类法、字段,以及扩展和自定义内容类型。

主要特点

  • 轻松显示您的自定义内容,无论您想使用短代码、小部件还是无代码 Pods 模板。
  • 在 WordPress 主题模板和函数中接近或使用标准 PHP。
  • 在您的任何内容之间建立联系,以帮助组织相关领域。
  • 使用默认插件字段类型,或创建自己的。
  • 按角色/能力控制可见性
  • 所有常用字段选项,如日期和时间、数字、文本、颜色选择器等
  • 适用于高级自定义字段。

如何管理和批量编辑自定义分类?

当您有太多内容时,管理分类法和自定义分类法将是一项艰巨的任务。

那么,如果您可以从一个地方管理和编辑所有分类法会怎样?

直接进行编辑,一次将分类法分配给多个帖子,将分类法数据导出到 CSV 等等……

我们的 Smart Manager 插件将允许您做同样的事情。 目前,您可以编辑和管理自定义帖子类型。 我们将很快推出自定义分类的功能!

结论

呸! 这是需要处理的大量信息。

我希望您现在精通 WordPress 自定义分类法以及如何设置它们。

如有任何疑问或建议,请留下您的评论。