Your issue is definitely caused by the lack of a pre_get_posts
filter. Try this in your theme/functions.php
:
// so event cpt is found on assigned cat archive page
function jdk540_event_query_post_type($query) {
if ( ! is_admin() ) {
if( is_category() || is_tag() && $query->is_main_query() && empty( $query->query_vars['suppress_filters'] ) ) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array( 'post', 'event', 'nav_menu_item');
$query->set('post_type', $post_type);
}
}
}
add_action('pre_get_posts', 'jdk540_event_query_post_type');