如何在WordPress中创建自定义分类
许多人认为WordPress是一个博客工具,主要是因为它有帖子,类别,标签等。大多数人不知道的是,所有帖子,类别,标签都可以被自定义帖子类型和自定义分类法取代。在本文中,我们将向您展示如何在WordPress中创建自定义分类法以及如何在WordPress主题中显示自定义分类。
什么是分类法?
WordPress中的分类法是每个人都使用的东西之一,但他们不知道他们正在使用它。源自Linnaean分类法的生物分类方法,WordPress分类法被用作将帖子和自定义帖子类型组合在一起的方法。WordPress有两个非常流行的分类法,人们定期使用它们:类别和标签(阅读:类别与标签:最佳实践)。您可以使用自定义分类法来创建自定义组并将其置于一个保护伞下。例如,您有一个名为Books的自定义帖子类型。尽管您可以使用类别,但您可能不希望将两者混合使用,因为它们的使用方式不同。您可以注册一个名为Topics的新自定义分类。您可以添加以下主题词:冒险,浪漫,非小说等。这将允许您和您的用户按每个主题对书籍进行排序。分类法也可以是分层的,意味着您可以拥有主题,如:小说,非小说和儿童。然后在每个类别下都有子主题,例如小说会将惊悚片作为子主题。
既然你知道什么是自定义分类法,那么让我们学习如何在WordPress中创建自定义分类法。我们将使用两种方法来创建自定义分类。方法1将为那些选择不处理代码的人使用插件。另一方面,方法2是那些喜欢在没有插件的情况下做所有事情的人的代码方法。
创建自定义分类法 – 更简单的方法
让我们开始创建自定义分类。首先,您需要安装并激活Simple Taxonomy WordPress插件。转到设置»自定义分类法创建新的分类法:
创建自定义分类法的第一部分是给它一个名称,它必须全部小写并没有奇怪的人物。第二种选择是该分类法是否是分层的。如果要创建类别的分类,您可以在其中添加父项和子项,然后选择True,如果您希望像标签一样添加术语,则选择false。
第三个选项是将此分类与帖子类型相关联,最后一个选项是您是否要自动添加术语,选择无。
但我们还没有完成。让我们假设您正在创建分类并将其称为主题。现在你需要告诉WordPress它应该如何翻译主题的用户界面。
在为UI提供翻译后,按Add Taxonomy按钮。创建自定义分类后,它将显示在“帖子”下,并且将具有类似“类别”或“标签”的类似界面。自定义分类字段也将出现在帖子编辑区域中。
手动创建自定义分类法
在主题的 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),以满足您的需求。让我们知道您在网站上如何使用自定义分类法?