Stupid mistake of the day leaving it up for anyone else goofy enough to make this mistake:
All pages broken:
add_action('pre_get_posts','myfunc');
function myfunc($query) {
if ( $query->is_main_query() ) {
if(!is_admin()) { $query->set('post_type', array( 'post', 'podcast' ) ); }
}
}
All pages magically UNbroken:
add_action('pre_get_posts','myfunc');
function myfunc($query) {
if ( $query->is_main_query() ) {
if(!is_admin()) { $query->set('post_type', array( 'page', 'post', 'podcast' ) ); }
}
}
When you load a page, it fires the pre_get_posts action, which is odd, because you’d expect fetching a single post not to fire pre_get_posts, but it does.
So… mystery solved.