WordPress.org

Make WordPress Core

Ticket #21290: tax-check.diff

File tax-check.diff, 1.3 KB (added by wonderboymusic, 3 years ago)
  • wp-includes/query.php

    diff --git wp-includes/query.php wp-includes/query.php
    index 443d0bb..5e97a22 100644
    class WP_Query { 
    22192219                } 
    22202220 
    22212221                if ( $this->is_tax ) { 
    2222                         if ( empty($post_type) ) { 
    2223                                 // Do a fully inclusive search for currently registered post types of queried taxonomies 
    2224                                 $post_type = array(); 
    2225                                 $taxonomies = wp_list_pluck( $this->tax_query->queries, 'taxonomy' ); 
    2226                                 foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) { 
    2227                                         $object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt ); 
    2228                                         if ( array_intersect( $taxonomies, $object_taxonomies ) ) 
     2222                        $post_types = empty( $post_type ) ? array( 'post' ) : (array) $post_type; 
     2223 
     2224                        $post_type = array(); 
     2225                        $taxonomies = wp_list_pluck( $this->tax_query->queries, 'taxonomy' ); 
     2226                        foreach ( $taxonomies as $t ) { 
     2227                                foreach ( $post_types as $i => $pt ) { 
     2228                                        if ( is_object_in_taxonomy( $pt, $t ) && ! in_array( $pt, $post_type ) ) 
    22292229                                                $post_type[] = $pt; 
    22302230                                } 
    2231                                 if ( ! $post_type ) 
    2232                                         $post_type = 'any'; 
     2231                        } 
    22332232 
     2233                        if ( ! empty( $post_type ) ) { 
    22342234                                $post_status_join = true; 
    2235                         } elseif ( in_array('attachment', (array) $post_type) ) { 
    2236                                 $post_status_join = true; 
     2235                        } else { 
     2236                                $where = ' 0 = 1 AND' . $where; 
    22372237                        } 
    22382238                } 
    22392239