Solution:
//make sure these custom post types are registered for taxonomy queries
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if(is_category() || is_tag()) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'venue', 'story'); // don't forget nav_menu_item to allow menus to work!
$query->set('post_type',$post_type);
return $query;
}
}
was filtering the results (before? after?) the in-template query. As such, it was completely obliterating the requests to only use the requested post type. Changed to
//make sure these custom post types are registered for taxonomy queries
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if( is_tag() ) {
$post_type = get_query_var('post_type');
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'venue', 'story'); // don't forget nav_menu_item to allow menus to work!
$query->set('post_type',$post_type);
return $query;
}
}
And then on-page custom queries started working.