您是否正在寻找一种轻松地将类别添加到自定义帖子类型的方法?
类别是 WordPress 中的内置分类法之一,但默认情况下它们仅出现在帖子中。
在本文中,我们将向您展示如何向 WordPress 中的自定义帖子类型添加类别。
什么时候您可能需要向自定义帖子类型添加类别?
WordPress 允许插件开发人员和网站所有者创建自己的内容类型。与帖子和页面类似,这些自定义帖子类型也可以有自己的分类法,例如类别和标签。
例如,如果您发布电影评论,那么您可能需要为“电影”创建自定义帖子类型。
您可能还需要按照适当的主题组织您的电影,为此您需要自定义分类法。您可以创建一个称为流派的分类法。
但是,如果您想在电影帖子类型中使用与博客帖子相同的类别,该怎么办?
这时您需要为自定义帖子类型启用类别。这将允许您为您的博客文章以及自定义文章类型使用相同的类别。
话虽这么说,现在让我们看看如何轻松地将类别添加到 WordPress 中的自定义帖子类型。
使用插件将类别添加到自定义帖子类型
如果您是初学者,我们建议使用自定义帖子类型 UI 插件来创建自定义帖子类型。
使用自定义帖子类型 UI 插件,您可以选择将自定义帖子类型与任何内置或自定义分类法(包括类别)相关联。
首先,您需要安装并激活自定义帖子类型 UI插件。有关更多详细信息,请参阅我们有关如何安装 WordPress 插件的分步指南。
安装后,您需要访问CPT UI » 添加/编辑帖子类型来创建新的自定义帖子类型或编辑使用该插件创建的现有自定义帖子类型。
向下滚动到设置选项所在的底部。从那里,您将看到税收区域。
您需要选中类别旁边的框并保存自定义帖子类型。
不要忘记单击“保存帖子类型”按钮来存储您的设置。
现在,您可以编辑该特定帖子类型下的任何内容,并且您将在WordPress 块编辑器的右列中看到选择类别的选项。
手动将类别添加到自定义帖子类型
如果您通过在主题的functions.php文件、代码片段插件(推荐)或特定于站点的插件中添加代码来创建自定义帖子类型,那么您将必须修改代码以添加类别作为支持的分类法。
您所需要做的就是在自定义帖子类型的参数中添加这一行。
1 | 'taxonomies' => array ( 'category' ), |
由
您的自定义帖子类型的现有代码中可能已经有这一行,其中还包含一些其他自定义分类法。如果这样做,那么您只需在其后添加一个逗号并添加一个类别,如下所示:
1 | 'taxonomies' => array ( 'topics' , 'category' ), |
由
这是一个完整的代码示例,我们在其中创建了一个名为“电影”的自定义帖子类型,并支持内置类别。
1234567891011121314151617 号1819202122232425262728293031323334353637383940414243444546474849505152535455 | function custom_post_type() { // Set UI labels for Custom Post Type $labels = array ( 'name' => _x( 'Movies' , 'Post Type General Name' , 'twentythirteen' ), 'singular_name' => _x( 'Movie' , 'Post Type Singular Name' , 'twentythirteen' ), 'menu_name' => __( 'Movies' , 'twentythirteen' ), 'parent_item_colon' => __( 'Parent Movie' , 'twentythirteen' ), 'all_items' => __( 'All Movies' , 'twentythirteen' ), 'view_item' => __( 'View Movie' , 'twentythirteen' ), 'add_new_item' => __( 'Add New Movie' , 'twentythirteen' ), 'add_new' => __( 'Add New' , 'twentythirteen' ), 'edit_item' => __( 'Edit Movie' , 'twentythirteen' ), 'update_item' => __( 'Update Movie' , 'twentythirteen' ), 'search_items' => __( 'Search Movie' , 'twentythirteen' ), 'not_found' => __( 'Not Found' , 'twentythirteen' ), 'not_found_in_trash' => __( 'Not found in Trash' , 'twentythirteen' ), ); // Set other options for Custom Post Type $args = array ( 'label' => __( 'movies' , 'twentythirteen' ), 'description' => __( 'Movie news and reviews' , 'twentythirteen' ), 'labels' => $labels , 'supports' => array ( 'title' , 'editor' , 'excerpt' , 'author' , 'thumbnail' , 'comments' , 'revisions' , 'custom-fields' , ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page' , 'show_in_rest' => true, // This is where we add taxonomies to our CPT 'taxonomies' => array ( 'category' ), ); // Registering your Custom Post Type register_post_type( 'movies' , $args ); } /* Hook into the 'init' action so that the function * Containing our post type registration is not * unnecessarily executed. */ add_action( 'init' , 'custom_post_type' , 0 ); |
由
在类别页面上显示多种帖子类型
默认情况下,您的 WordPress 网站上的类别页面将仅显示默认的“帖子”帖子类型。
要在与默认帖子相同的类别页面上显示自定义帖子类型,您需要将此代码添加到主题的functions.php 文件或代码片段插件(如WPCode )中。
123456789101112 | add_filter( 'pre_get_posts' , 'query_post_type' ); function query_post_type( $query ) { if ( is_category() ) { $post_type = get_query_var( 'post_type' ); if ( $post_type ) $post_type = $post_type ; else $post_type = array ( 'nav_menu_item' , 'post' , 'movies' ); // don't forget nav_menu_item to allow menus to work! $query ->set( 'post_type' , $post_type ); return $query ; } } |
由
不要忘记将“电影”替换为您自己的自定义帖子类型的名称。您现在可以访问类别存档页面,它将显示您的自定义帖子类型中的条目。
我们希望本文能帮助您了解如何在 WordPress 中向自定义帖子类型添加类别。您也可以使用相同的方法将标签添加到自定义帖子类型。请参阅我们的类别与标签指南以了解更多信息。
您可能还想看看我们专家精选的必备 WordPress 插件来发展您的网站,或者了解有关如何增加博客流量的提示。