- if ( in_array( 'draft' , $q_status ) )
- $r_status[] = "$wpdb->posts.post_status = 'draft'";
- if ( in_array( 'pending', $q_status ) )
- $r_status[] = "$wpdb->posts.post_status = 'pending'";
- if ( in_array( 'future' , $q_status ) )
- $r_status[] = "$wpdb->posts.post_status = 'future'";
- if ( in_array( 'inherit' , $q_status ) )
- $r_status[] = "$wpdb->posts.post_status = 'inherit'";
- if ( in_array( 'private', $q_status ) )
- $p_status[] = "$wpdb->posts.post_status = 'private'";
- if ( in_array( 'publish', $q_status ) )
- $r_status[] = "$wpdb->posts.post_status = 'publish'";
+ if ( $q['post_status'] == 'any' ) {
+ // @todo Use register_post_status() data to determine which states should be excluded.
+ $r_status[] = "$wpdb->posts.post_status <> 'trash'";
+ } else {
+ if ( in_array( 'draft' , $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'draft'";
+ if ( in_array( 'pending', $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'pending'";
+ if ( in_array( 'future' , $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'future'";
+ if ( in_array( 'inherit' , $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'inherit'";
+ if ( in_array( 'private', $q_status ) )
+ $p_status[] = "$wpdb->posts.post_status = 'private'";
+ if ( in_array( 'publish', $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'publish'";
+ if ( in_array( 'trash', $q_status ) )
+ $r_status[] = "$wpdb->posts.post_status = 'trash'";
+ }