WordPress:如何在自定义 post post 类型中添加多个分类法

WordPress: How do I add more than one taxonomies in a custom post post type

我创建了一个名为 user-story 的自定义 Post 类型。 $args 看起来像这样:

$args = array(
   'labels' => $labels,
   'hierarchical' => true,
   'description' => 'description',
   'taxonomies' => array('category', 'story-type', 'genre'),
   'show_ui' => true,
   'show_in_menu' => true,
   'menu_position' => 5,
   'menu_icon' => 'http://webmaster.webmastersuccess.netdna-cdn.com/wp-content/uploads/2015/03/pencil.png',
   'public' => true,
   'has_archive' => true,
   'query_var' => true,
   'capability_type' => 'post',
   'supports' => $supports,
   'rewrite' => $rewrite,
   'register_meta_box_cb' => 'add_story_metaboxes' );

register_post_type('user_story', $args);

问题在行'taxonomies' => array('category', 'story-type', 'genre'),。我在管理员的 添加新故事 页面中看不到我的分类法 story-typegenre。只有 category 出现了。

story-typegenre 都是自定义分类法。我停用了 CPT 插件 (user_story),然后重新激活了它。但仍然高于自定义分类法。

这两种自定义分类法都是通过插件注册的,它们在管理菜单中可见。在这些分类下注册的术语也显示在各自的列表页面中。

屏幕截图 1:在分类法中注册的术语列表 story-type

屏幕截图 2:在分类法中注册的术语列表 genre

屏幕截图 3:“添加新故事”页面 - none 以上分类法仅列出内置分类法 category

我引用了 this

这个应该有帮助: https://developer.wordpress.org/reference/functions/register_taxonomy/

将此代码放入您的 functions.php 文件中,自定义分类法应添加到您的自定义 post 类型中。

<?php
add_action( 'init', 'create_user_story_tax' );

function create_user_story_tax() {

    /* Create Genre Taxonomy */
    $args = array(
        'label' => __( 'Genre' ),
        'rewrite' => array( 'slug' => 'genre' ),
        'hierarchical' => true,
    )

    register_taxonomy( 'genre', 'user-story', $args );
    
    /* Create Story Type Taxonomy */
    $args = array(
            'label' => __( 'Story Type' ),
            'rewrite' => array( 'slug' => 'story-type' ),
            'hierarchical' => true,
        )

    register_taxonomy( 'story-type', 'user-story', $args );
    
}
?>