- // Parse the meta query again if query vars have changed.
- if ( $this->query_vars_changed ) {
- $meta_query_hash = md5( serialize( $q['meta_query'] ) );
- $_meta_query = $q['meta_query'];
- unset( $q['meta_query'] );
- _parse_meta_query( $q );
- if ( md5( serialize( $q['meta_query'] ) ) != $meta_query_hash && is_array( $_meta_query ) )
- $q['meta_query'] = array_merge( $_meta_query, $q['meta_query'] );
- }
-
- if ( !empty( $q['meta_query'] ) ) {
- $clauses = call_user_func_array( '_get_meta_sql', array( $q['meta_query'], 'post', $wpdb->posts, 'ID', &$this) );
+ if ( !empty( $this->meta_query->queries ) ) {
+ $clauses = $this->meta_query->get_sql( 'post', $wpdb->posts, 'ID', $this );