WordPress.org

Make WordPress Core

Ticket #21290: 21290-6.diff

File 21290-6.diff, 940 bytes (added by SergeyBiryukov, 3 years ago)

Same as 21290-5.diff, with proper formatting

  • 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;