跳到主要内容

您是否要在WordPress中创建自定义分类法?

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

在本文中,我们将向您展示如何在WordPress中轻松创建自定义分类法,无论是否使用插件。

如何在wordpress中创建自定义分类法
如何在wordpress中创建自定义分类法

尽管创建自定义分类法功能强大,但有很多内容需要介绍。为了帮助您正确地进行此设置,我们在下面创建了一个简单的目录:

什么是WordPress分类法?

WordPress分类法是一种组织帖子自定义帖子类型的方法。分类一词来自称为Linnaean分类的生物分类方法。

默认情况下,WordPress带有两个分类法,称为分类和标签。您可以使用它们来组织您的博客文章。

但是,如果您使用的是自定义帖子类型,则类别和标签可能并不适合所有内容类型。

例如,您可以创建一个名为“ Books”的自定义帖子类型,并使用一种名为“ topics”的自定义分类法对其进行排序。

您可以添加主题词,例如“冒险”,“浪漫史”,“恐怖”以及您想要的其他书籍主题。这将使您和您的读者可以轻松地按每个主题对书籍进行排序。

分类法也可以是分层的,这意味着您可以拥有小说和非小说等主要主题。然后,您将在每个类别下都有子主题。

例如,小说将冒险,浪漫和恐怖作为子主题。

现在您知道什么是自定义分类法,让我们学习如何在WordPress中创建自定义分类法。

如何在WordPress中创建自定义分类法

我们将使用两种方法来创建自定义分类法。首先,我们将使用插件来创建自定义分类法。

对于第二种方法,我们将向您展示代码方法,以及如何在不使用插件的情况下使用它来创建自定义分类法。

在WordPress中创建自定义分类法(视频教程)

订阅WPBeginner

如果您喜欢书面说明,请继续阅读。

使用插件创建自定义分类法(简便方法)

您需要做的第一件事是安装并激活“自定义帖子类型” UI插件。有关详细信息,请参阅有关如何安装WordPress插件的指南

在本教程中,我们已经创建了一个自定义帖子类型,并将其称为“书籍”。因此,在开始创建分类法之前,请确保已创建自定义帖子类型

接下来,转到WordPress管理区域中的CPT UI»“添加/编辑分类法”菜单项,以创建您的第一个分类法。

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

  • 创建分类标签(将在您的URL中)
  • 创建复数标签
  • 创建单个标签
  • 自动填充标签

第一步是为分类法创建。URL和WordPress搜索查询中都使用了该条。

它只能包含字母和数字,并且将自动转换为小写字母。

接下来,您将为自定义分类法填写复数和单数名称。

从那里,您可以单击链接“根据所选标签填充其他标签”。如果执行此操作,则插件将自动为您填充其余的标签字段。

现在,向下滚动到“其他标签”部分。在此区域,您可以提供帖子类型的描述。

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

接下来,我们有设置选项。在此区域中,可以为创建的每个分类法设置不同的属性。每个选项都有详细说明其功能的描述。

在上面的屏幕截图中,您将看到我们选择将此分类法进行分层。这意味着我们的分类法“主题”可以包含子主题。例如,一个名为“小说”的主题可以具有诸如“幻想”,“惊悚片”,“神秘”等子主题。

在WordPress仪表板的屏幕下方,还有许多其他设置,但是您可以在本教程中按原样保留它们。

现在,您可以单击底部的“添加分类法”按钮以保存您的自定义分类法。

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

手动创建自定义分类法(使用代码)

此方法要求您将代码添加到WordPress网站。如果您以前没有做过,那么我们建议您阅读有关如何轻松在WordPress中添加代码段的指南。

1.创建分层分类法

让我们从分层分类法开始,该分类法类似于类别,并且可以具有父项和子项。

在主题的functions.php文件或特定站点的插件(推荐)中添加以下代码,以创建类似于类别的分层自定义分类法:

//hook into the init action and call create_book_taxonomies when it fires

add_action( 'init', 'create_subjects_hierarchical_taxonomy', 0 );

//create a custom taxonomy name it subjects for your posts

function create_subjects_hierarchical_taxonomy() {

// Add new taxonomy, make it hierarchical like categories
//first do the translations part for GUI

  $labels = array(
    'name' => _x( 'Subjects', 'taxonomy general name' ),
    'singular_name' => _x( 'Subject', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Subjects' ),
    'all_items' => __( 'All Subjects' ),
    'parent_item' => __( 'Parent Subject' ),
    'parent_item_colon' => __( 'Parent Subject:' ),
    'edit_item' => __( 'Edit Subject' ), 
    'update_item' => __( 'Update Subject' ),
    'add_new_item' => __( 'Add New Subject' ),
    'new_item_name' => __( 'New Subject Name' ),
    'menu_name' => __( 'Subjects' ),
  ); 	

// Now register the taxonomy
  register_taxonomy('subjects',array('books'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'show_in_rest' => true,
    'show_admin_column' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'subject' ),
  ));

}

不要忘记用您自己的分类标签替换分类名称和标签。您还将注意到,此分类法与Books帖子类型相关联,您需要将其更改为您要使用的任何帖子类型。

2.创建非分层分类法

要创建非分层的自定义分类法(如“标签”),请将此代码添加到主题的functions.php特定站点的插件中

//hook into the init action and call create_topics_nonhierarchical_taxonomy when it fires

add_action( 'init', 'create_topics_nonhierarchical_taxonomy', 0 );

function create_topics_nonhierarchical_taxonomy() {

// Labels part for the GUI

  $labels = array(
    'name' => _x( 'Topics', 'taxonomy general name' ),
    'singular_name' => _x( 'Topic', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Topics' ),
    'popular_items' => __( 'Popular Topics' ),
    'all_items' => __( 'All Topics' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Topic' ), 
    'update_item' => __( 'Update Topic' ),
    'add_new_item' => __( 'Add New Topic' ),
    'new_item_name' => __( 'New Topic Name' ),
    'separate_items_with_commas' => __( 'Separate topics with commas' ),
    'add_or_remove_items' => __( 'Add or remove topics' ),
    'choose_from_most_used' => __( 'Choose from the most used topics' ),
    'menu_name' => __( 'Topics' ),
  ); 

// Now register the non-hierarchical taxonomy like tag

  register_taxonomy('topics','books',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'show_in_rest' => true,
    'show_admin_column' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'topic' ),
  ));
}

注意两个代码之间的区别。对于类分类法,层次参数的值是true;对于标签类分类法,值是false。

同样,在非分层标签(如分类法)的标签数组中,我们为parent_item和parent_item_colon参数添加了null,这意味着在创建父项的UI中不会显示任何内容。

显示自定义分类法

现在,我们已经创建了自定义分类法并添加了一些术语,您的WordPress主题仍然不会显示它们。

为了显示它们,您需要向WordPress主题或子主题添加一些代码。

您需要在要显示条款的模板文件中添加此代码。

通常,它是single.php,content.php或WordPress主题中template-parts文件夹内的文件之一。要弄清楚您需要编辑哪个文件,请参阅我们的WordPress模板层次结构指南以获取详细信息。

您将需要在要显示条款的地方添加以下代码。

<?php the_terms( $post->ID, 'topics', 'Topics: ', ', ', ' ' ); ?>

您也可以将其添加到其他文件中,例如archive.php,index.php以及要显示分类法的其他任何位置。

默认情况下,您的自定义分类法使用archive.php模板来显示帖子。但是,您可以通过创建为其创建自定义档案显示taxonomy-{taxonomy-slug}.php

为自定义帖子添加分类法

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

我们将创建一个分类法,并将其称为非小说类。

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

在WordPress信息中心中,转到“书籍»主题”以添加术语或主题。

在此屏幕上,您将看到4个区域:

  • 名称
  • ug
  • 父母
  • 描述

在名称中,您将写下要添加的术语。您可以跳过子弹部分,并提供对此特定术语的描述(可选)。

最后,单击“添加新主题”按钮以创建新的分类法。

您新添加的字词现在将显示在右栏中。

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

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

只需转到书籍»添加新页面即可创建帖子。在帖子编辑屏幕上,您会在右侧的列中找到用于选择或创建新术语的选项。

添加条款后,您可以继续发布该内容。

根据该条款提交的所有帖子都可以通过您自己的URL在您的网站上访问。例如,小说主题下的帖子将出现在以下URL:

https://example.com/subject/fiction/

现在,您已经创建了自定义分类法,您可能希望显示在网站的导航菜单中。

转到外观»菜单,然后在自定义分类标签下选择要添加的字词。

不要忘记单击“保存菜单”按钮来保存设置。

现在,您可以访问您的网站以查看菜单。

有关更多详细信息,请参见有关如何在WordPress中创建下拉菜单的分步指南。

进一步推广WordPress分类法

使用自定义分类法可以做很多事情。例如,您可以在侧边栏小部件中显示它们的方式,或者为每个术语添加图像图标

您还可以在WordPress中为自定义分类添加启用RSS提要,并允许用户订阅各个条款。

如果要自定义分类页面的布局,则可以查看Beaver ThemerDivi。它们都是拖放式WordPress页面构建器,可让您无需任何编码即可创建自定义布局。

回到顶部