I think you should add support for custom taxonomy types and name the file taxonomy-cpt-type.php where cpt is the name of your Custom Post Type.
Your CPT archive file should be named archive-cpt.php where cpt is the name of your Custom Post Type.
Here’s all the code which has been tested.
Note: You shouldn’t be using tag or tags as the name of your custom taxonomy type as it will conflict with existing core functions.
add_action( 'init', 'wpsites_cpt_post_type' );
function wpsites_cpt_post_type() {
register_post_type( 'cpt',
array(
'labels' => array(
'name' => __( 'CPT', 'theme' ),
'singular_name' => __( 'CPT', 'theme' ),
),
'has_archive' => true,
'hierarchical' => true,
'menu_icon' => true,
'public' => true,
'rewrite' => array( 'slug' => 'cpt', 'with_front' => false ),
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ),
'taxonomies' => array( 'cpt-type' ),
));
}
And this for registering a Taxonomy Type page where you can create unlimited tax types.
add_action( 'init', 'wpsites_register_taxonomy_types' );
function wpsites_register_taxonomy_types() {
register_taxonomy( 'cpt-type', 'cpt',
array(
'labels' => array(
'name' => _x( 'Types', 'taxonomy general name', 'theme' ),
'add_new_item' => __( 'Add New CPT Type', 'theme' ),
'new_item_name' => __( 'New CPT Type', 'theme' ),
),
'exclude_from_search' => true,
'has_archive' => true,
'hierarchical' => true,
'rewrite' => array( 'slug' => 'cpt-type', 'with_front' => false ),
'show_ui' => true,
'show_tagcloud' => false,
));
}
Replace all instances of cpt with the name of your custom post type then re-save your Permalink settings.
Otherwise, it may be a problem with the code in your taxonomy-cpt-type.php file.