Make WordPress Core

Ticket #21290: 21290-5.diff

File 21290-5.diff, 932 bytes (added by jondavidjohn, 12 years ago)
  • wp-includes/query.php

     
    22162216                if ( $this->is_tax ) {
    22172217                        if ( empty($post_type) ) {
    22182218                                $post_type = 'any';
     2219
     2220                                // do a fully inclusive search for registered post types of queried taxonomies
     2221                                $tax_post_types = array();
     2222                                $taxonomies = wp_list_pluck( $this->tax_query->queries, 'taxonomy' );
     2223                                foreach ( get_post_types(array('exclude_from_search' => false)) as $post_type ) {
     2224                                        $post_type_taxonomies = get_object_taxonomies($post_type);
     2225                                        if ( array_intersect($taxonomies, $post_type_taxonomies) )
     2226                                                $tax_post_types[] = $post_type;
     2227                                }
     2228                                if ( $tax_post_types )
     2229                                        $post_type = $tax_post_types;
     2230
    22192231                                $post_status_join = true;
    22202232                        } elseif ( in_array('attachment', (array) $post_type) ) {
    22212233                                $post_status_join = true;