Make WordPress Core

Ticket #17592: 17592.3.diff

File 17592.3.diff, 1.2 KB (added by wonderboymusic, 11 years ago)
  • wp-includes/query.php

    diff --git a/wp-includes/query.php b/wp-includes/query.php
    index 04286aa..7430260 100644
    a b class WP_Query { 
    24212421                }
    24222422
    24232423                if ( 'any' == $post_type ) {
    2424                         $in_search_post_types = get_post_types( array('exclude_from_search' => false) );
     2424                        $in_search_post_types = $this->is_search() ? get_post_types( array( 'exclude_from_search' => false ) ) : get_post_types();
    24252425                        if ( ! empty( $in_search_post_types ) )
    24262426                                $where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
    24272427                } elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
    class WP_Query { 
    24592459                        $r_status = array();
    24602460                        $p_status = array();
    24612461                        $e_status = array();
    2462                         if ( in_array('any', $q_status) ) {
    2463                                 foreach ( get_post_stati( array('exclude_from_search' => true) ) as $status )
     2462                        if ( in_array( 'any', $q_status ) ) {
     2463                                $stati = $this->is_search() ? get_post_stati( array( 'exclude_from_search' => true ) ) : get_post_stati();
     2464                                foreach ( $stati as $status )
    24642465                                        $e_status[] = "$wpdb->posts.post_status <> '$status'";
    24652466                        } else {
    24662467                                foreach ( get_post_stati() as $status ) {