Order by the first array within a meta_query

You can use get_posts() for both event types and merge them. $merged_events = array(); $upcoming = get_posts(array( /* Your upcoming events args here. */ )); $past = get_posts(array( /* Your past events args here. */ )); $merged_events = array_merge( $upcoming, $past); foreach( $merged_events as $merged_event ) { //Your loop }

Is there a way to nest taxonomies or custom fields deeper than one level below the post type?

WordPress content is implemented in two foundational structures: Posts represent distinct “instances” of content, and Taxonomy Terms aggregate and organize Posts according to their shared qualities. Meanwhile “custom fields” – or more specifically Meta-data/”Meta” – can be used to add arbitrary data to both Posts and Terms (among other things). Analogous to classical OOP, a … Read more