En tu caso fijate que almacenabas todo en $query y no utilizabas esa variable para el loop. Fijate el modo de uso de WP_Query. Yo lo pasé a query_posts por comodidad solamente
http://codex.wordpress.org/Class_Reference/WP_Query
Código PHP:
Ver original$the_query = new WP_Query( $args );
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();