admin管理员组

文章数量:1313944

I have created two custom post type (movie type1, movie 2) via functions.php, but when making a new category, this category duplicates itself in the POSTS(Article) and other CPT (movie type1, movie 2) why?

function custom_post_type_week() {
     
    // Set UI labels for Custom Post Type
        $labels = array(
            'name'                => _x( 'Movie type 1', 'Post Type General Name', 'twentythirteen' ),
            'singular_name'       => _x( 'Movie type 1', 'Post Type Singular Name', 'twentythirteen' ),
            'menu_name'           => __( 'movie type 1', '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' ),
        );
     

    $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'        => true,
        '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','post_tag' ),
    );
     
  
    register_post_type( 'movies', $args );
 
}
 
 
add_action( 'init', 'custom_post_type_week', 0 );

I have created two custom post type (movie type1, movie 2) via functions.php, but when making a new category, this category duplicates itself in the POSTS(Article) and other CPT (movie type1, movie 2) why?

function custom_post_type_week() {
     
    // Set UI labels for Custom Post Type
        $labels = array(
            'name'                => _x( 'Movie type 1', 'Post Type General Name', 'twentythirteen' ),
            'singular_name'       => _x( 'Movie type 1', 'Post Type Singular Name', 'twentythirteen' ),
            'menu_name'           => __( 'movie type 1', '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' ),
        );
     

    $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'        => true,
        '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','post_tag' ),
    );
     
  
    register_post_type( 'movies', $args );
 
}
 
 
add_action( 'init', 'custom_post_type_week', 0 );
Share Improve this question edited Nov 27, 2020 at 8:13 bueltge 17.1k7 gold badges62 silver badges97 bronze badges asked Nov 25, 2020 at 23:23 NicolaNicola 31 bronze badge
Add a comment  | 

1 Answer 1

Reset to default 0

Category and post_tag are default WP taxonomies and since you attached them in your CPT functions so they appear in under your CPT and as well under Posts menu

What you need to do is to create a custom taxonomy lets call it movie_cat and attach to your custom CPT e.g. movies

// Register Custom Taxonomy
function custom_taxonomy() {

    $labels = array(
        'name'                       => _x( 'Movie Categories', 'Taxonomy General Name', 'twentythirteen' ),
        'singular_name'              => _x( 'Movie Category', 'Taxonomy Singular Name', 'twentythirteen' ),
        'menu_name'                  => __( 'Movie Category', 'twentythirteen' ),
        'all_items'                  => __( 'All Items', 'twentythirteen' ),
        'parent_item'                => __( 'Parent Item', 'twentythirteen' ),
        'parent_item_colon'          => __( 'Parent Item:', 'twentythirteen' ),
        'new_item_name'              => __( 'New Item Name', 'twentythirteen' ),
        'add_new_item'               => __( 'Add New Item', 'twentythirteen' ),
        'edit_item'                  => __( 'Edit Item', 'twentythirteen' ),
        'update_item'                => __( 'Update Item', 'twentythirteen' ),
        'view_item'                  => __( 'View Item', 'twentythirteen' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'twentythirteen' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'twentythirteen' ),
        'choose_from_most_used'      => __( 'Choose from the most used', 'twentythirteen' ),
        'popular_items'              => __( 'Popular Items', 'twentythirteen' ),
        'search_items'               => __( 'Search Items', 'twentythirteen' ),
        'not_found'                  => __( 'Not Found', 'twentythirteen' ),
        'no_terms'                   => __( 'No items', 'twentythirteen' ),
        'items_list'                 => __( 'Items list', 'twentythirteen' ),
        'items_list_navigation'      => __( 'Items list navigation', 'twentythirteen' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'movie_cat', array( 'movies' ), $args );

}
add_action( 'init', 'custom_taxonomy', 0 );

and the part where you are attaching custom taxonomies in your CPT function, use below code to attach movie_cat taxonomy

// This is where we add taxonomies to our CPT
    'taxonomies'          => array( 'movie_cat' ), 

本文标签: Custom Post Type with Category Separate