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

许多人认为WordPress是一个博客工具,主要是因为它有帖子,类别,标签等。大多数人不知道的是,所有帖子,类别,标签都可以被自定义帖子类型和自定义分类法取代。在本文中,我们将向您展示如何在WordPress中创建自定义分类法以及如何在WordPress主题中显示自定义分类。

什么是分类法?

WordPress中的分类法是每个人都使用的东西之一,但他们不知道他们正在使用它。源自Linnaean分类法的生物分类方法,WordPress分类法被用作将帖子和自定义帖子类型组合在一起的方法。WordPress有两个非常流行的分类法,人们定期使用它们:类别和标签(阅读:类别与标签:最佳实践)。您可以使用自定义分类法来创建自定义组并将其置于一个保护伞下。例如,您有一个名为Books的自定义帖子类型。尽管您可以使用类别,但您可能不希望将两者混合使用,因为它们的使用方式不同。您可以注册一个名为Topics的新自定义分类。您可以添加以下主题词:冒险,浪漫,非小说等。这将允许您和您的用户按每个主题对书籍进行排序。分类法也可以是分层的,意味着您可以拥有主题,如:小说,非小说和儿童。然后在每个类别下都有子主题,例如小说会将惊悚片作为子主题。

既然你知道什么是自定义分类法,那么让我们学习如何在WordPress中创建自定义分类法。我们将使用两种方法来创建自定义分类。方法1将为那些选择不处理代码的人使用插件。另一方面,方法2是那些喜欢在没有插件的情况下做所有事情的人的代码方法。

视频教程

订阅WPBeginner

如果你不这样做喜欢视频或需要更多说明,然后继续阅读。

创建自定义分类法 – 更简单的方法

让我们开始创建自定义分类。首先,您需要安装并激活Simple Taxonomy WordPress插件。转到设置»自定义分类法创建新的分类法:

Creating a custom taxonomy in WordPress

创建自定义分类法的第一部分是给它一个名称,它必须全部小写并没有奇怪的人物。第二种选择是该分类法是否是分层的。如果要创建类别的分类,您可以在其中添加父项和子项,然后选择True,如果您希望像标签一样添加术语,则选择false。

第三个选项是将此分类与帖子类型相关联,最后一个选项是您是否要自动添加术语,选择无。

但我们还没有完成。让我们假设您正在创建分类并将其称为主题。现在你需要告诉WordPress它应该如何翻译主题的用户界面。

Translating taxonomy for UI

在为UI提供翻译后,按Add Taxonomy按钮。创建自定义分类后,它将显示在“帖子”下,并且将具有类似“类别”或“标签”的类似界面。自定义分类字段也将出现在帖子编辑区域中。

Custom taxonomy in Post Edit area

手动创建自定义分类法

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

  //hook into the init action and call create_book_taxonomies when it fires  add_action( "init", "create_topics_hierarchical_taxonomy", 0 );    //create a custom taxonomy name it topics for your posts    function create_topics_hierarchical_taxonomy() {    // Add new taxonomy, make it hierarchical like categories  //first do the translations part for GUI      $labels = array(      "name" => _x( "Topics", "taxonomy general name" ),      "singular_name" => _x( "Topic", "taxonomy singular name" ),      "search_items" =>  __( "Search Topics" ),      "all_items" => __( "All Topics" ),      "parent_item" => __( "Parent Topic" ),      "parent_item_colon" => __( "Parent Topic:" ),      "edit_item" => __( "Edit Topic" ),      "update_item" => __( "Update Topic" ),      "add_new_item" => __( "Add New Topic" ),      "new_item_name" => __( "New Topic Name" ),      "menu_name" => __( "Topics" ),    );    // Now register the taxonomy      register_taxonomy("topics",array("post"), array(      "hierarchical" => true,      "labels" => $labels,      "show_ui" => true,      "show_admin_column" => true,      "query_var" => true,      "rewrite" => array( "slug" => "topic" ),    ));    }  

要创建像分类一样的非分层自定义分类,请在主题的函数中添加此代码.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","post",array(      "hierarchical" => false,      "labels" => $labels,      "show_ui" => 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中不会显示任何内容来创建父项。

显示自定义分类法

以下是在单个帖子页面上显示添加到自定义分类法的术语的方法。在循环中的 single.php 文件中添加以下单行代码:

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

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

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

自定义分类法可以以多种方式使用。将它们与自定义帖子类型和自定义元框组合,您可以创建高度自定义的内容管理系统(CMS),以满足您的需求。让我们知道您在网站上如何使用自定义分类法?

许多人认为WordPress是一个博客工具,主要是因为它有帖子,类别,标签等。大多数人不知道的是,所有帖子,类别,标签都可以被自定义帖子类型和自定义分类法取代。在本文中,我们将向您展示如何在WordPress中创建自定义分类法以及如何在WordPress主题中显示自定义分类。

什么是分类法?

WordPress中的分类法是每个人都使用的东西之一,但他们不知道他们正在使用它。源自Linnaean分类法的生物分类方法,WordPress分类法被用作将帖子和自定义帖子类型组合在一起的方法。WordPress有两个非常流行的分类法,人们定期使用它们:类别和标签(阅读:类别与标签:最佳实践)。您可以使用自定义分类法来创建自定义组并将其置于一个保护伞下。例如,您有一个名为Books的自定义帖子类型。尽管您可以使用类别,但您可能不希望将两者混合使用,因为它们的使用方式不同。您可以注册一个名为Topics的新自定义分类。您可以添加以下主题词:冒险,浪漫,非小说等。这将允许您和您的用户按每个主题对书籍进行排序。分类法也可以是分层的,意味着您可以拥有主题,如:小说,非小说和儿童。然后在每个类别下都有子主题,例如小说会将惊悚片作为子主题。

既然你知道什么是自定义分类法,那么让我们学习如何在WordPress中创建自定义分类法。我们将使用两种方法来创建自定义分类。方法1将为那些选择不处理代码的人使用插件。另一方面,方法2是那些喜欢在没有插件的情况下做所有事情的人的代码方法。

视频教程

订阅WPBeginner

如果你不这样做喜欢视频或需要更多说明,然后继续阅读。

创建自定义分类法 – 更简单的方法

让我们开始创建自定义分类。首先,您需要安装并激活Simple Taxonomy WordPress插件。转到设置»自定义分类法创建新的分类法:

Creating a custom taxonomy in WordPress

创建自定义分类法的第一部分是给它一个名称,它必须全部小写并没有奇怪的人物。第二种选择是该分类法是否是分层的。如果要创建类别的分类,您可以在其中添加父项和子项,然后选择True,如果您希望像标签一样添加术语,则选择false。

第三个选项是将此分类与帖子类型相关联,最后一个选项是您是否要自动添加术语,选择无。

但我们还没有完成。让我们假设您正在创建分类并将其称为主题。现在你需要告诉WordPress它应该如何翻译主题的用户界面。

Translating taxonomy for UI

在为UI提供翻译后,按Add Taxonomy按钮。创建自定义分类后,它将显示在“帖子”下,并且将具有类似“类别”或“标签”的类似界面。自定义分类字段也将出现在帖子编辑区域中。

Custom taxonomy in Post Edit area

手动创建自定义分类法

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

  //hook into the init action and call create_book_taxonomies when it fires  add_action( "init", "create_topics_hierarchical_taxonomy", 0 );    //create a custom taxonomy name it topics for your posts    function create_topics_hierarchical_taxonomy() {    // Add new taxonomy, make it hierarchical like categories  //first do the translations part for GUI      $labels = array(      "name" => _x( "Topics", "taxonomy general name" ),      "singular_name" => _x( "Topic", "taxonomy singular name" ),      "search_items" =>  __( "Search Topics" ),      "all_items" => __( "All Topics" ),      "parent_item" => __( "Parent Topic" ),      "parent_item_colon" => __( "Parent Topic:" ),      "edit_item" => __( "Edit Topic" ),      "update_item" => __( "Update Topic" ),      "add_new_item" => __( "Add New Topic" ),      "new_item_name" => __( "New Topic Name" ),      "menu_name" => __( "Topics" ),    );    // Now register the taxonomy      register_taxonomy("topics",array("post"), array(      "hierarchical" => true,      "labels" => $labels,      "show_ui" => true,      "show_admin_column" => true,      "query_var" => true,      "rewrite" => array( "slug" => "topic" ),    ));    }  

要创建像分类一样的非分层自定义分类,请在主题的函数中添加此代码.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","post",array(      "hierarchical" => false,      "labels" => $labels,      "show_ui" => 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中不会显示任何内容来创建父项。

显示自定义分类法

以下是在单个帖子页面上显示添加到自定义分类法的术语的方法。在循环中的 single.php 文件中添加以下单行代码:

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

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

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

自定义分类法可以以多种方式使用。将它们与自定义帖子类型和自定义元框组合,您可以创建高度自定义的内容管理系统(CMS),以满足您的需求。让我们知道您在网站上如何使用自定义分类法?

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-04-23 14:18:38
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
[email protected]
取消

选择聊天工具: