您是否正在寻找一种轻松将类别添加到自定义帖子类型的方法?
类别是 WordPress 中的内置分类法之一,但默认情况下它们仅出现在帖子中。
在本文中,我们将向您展示如何在 WordPress 中将类别添加到自定义帖子类型。
何时可能需要将类别添加到自定义帖子类型?
WordPress 允许插件开发人员和网站所有者创建自己的内容类型。与帖子和页面类似,这些自定义帖子类型也可以有自己的分类法,如类别和标签。
例如,如果您发布电影评论,那么您可能想要为“电影”创建自定义帖子类型。
您可能还需要按适当的主题组织电影,因为您需要自定义分类法。您可以创建一个称为流派的分类。
但是,如果您想使用与您的博客文章相同的类别和电影文章类型怎么办?
这是您需要为自定义帖子类型启用类别的时候。这将允许您对博客文章和自定义文章类型使用相同的类别。
话虽如此,现在让我们看看如何在 WordPress 中轻松地将类别添加到自定义帖子类型。
使用插件将类别添加到自定义帖子类型
如果您是初学者,我们建议您使用自定义帖子类型 UI 插件来创建自定义帖子类型。
使用自定义帖子类型 UI 插件,您可以选择将自定义帖子类型与任何内置或自定义分类(包括类别)相关联。
首先,您需要安装并激活自定义帖子类型 UI插件。有关更多详细信息,请参阅我们关于如何安装 WordPress 插件的分步指南。
安装后,您需要访问CPT UI » 添加/编辑帖子类型以创建新的自定义帖子类型或编辑您使用插件创建的现有自定义帖子类型。
向下滚动到设置选项所在的底部。从那里,您将看到分类法区域。
您需要选中类别旁边的框并保存您的自定义帖子类型。
不要忘记单击保存帖子类型按钮来存储您的设置。
现在,您可以编辑该特定帖子类型下的任何内容,并且您将在WordPress 块编辑器的右栏中看到选择类别的选项。
手动将类别添加到自定义帖子类型
如果您通过在主题的functions.php文件或特定于站点的插件中添加代码来创建自定义帖子类型,那么您将必须修改代码以将类别添加为支持的分类法。
您需要做的就是将此行添加到自定义帖子类型的参数中。
‘taxonomies’ => array( ‘category’ ),
您可能已经在自定义帖子类型的现有代码中包含此行,其中包含一些其他自定义分类法。如果你这样做了,那么你只需要在之后添加一个逗号并添加一个类别,如下所示:
‘taxonomies’ => array(‘topics’, ‘category’ ),
这是一个完整的代码示例,其中我们创建了一个名为“电影”的自定义帖子类型,支持内置类别。
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 或特定于站点的插件中。
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 插件来发展您的网站。