WordPress.org

Make WordPress Core

Ticket #44737: 44737.diff

File 44737.diff, 1.1 KB (added by felipeelia, 12 months ago)
  • src/wp-includes/class-wp-query.php

     
    24432443                } elseif ( ! $this->is_singular ) {
    24442444                        $where .= " AND ({$wpdb->posts}.post_status = 'publish'";
    24452445
     2446                        // States excluded from search. Used inside the foreach just ahead.
     2447                        $states_excluded_from_search = array();
     2448                        if ( $this->is_search ) {
     2449                                $states_excluded_from_search = get_post_stati( array( 'exclude_from_search' => true ) );
     2450                        }
     2451
    24462452                        // Add public states.
    24472453                        $public_states = get_post_stati( array( 'public' => true ) );
    24482454                        foreach ( (array) $public_states as $state ) {
    2449                                 if ( 'publish' == $state ) { // Publish is hard-coded above.
     2455                                // Publish is hard-coded above.
     2456                                if ( 'publish' == $state ) {
    24502457                                        continue;
    24512458                                }
     2459                                // If is search, states excluded from it don't enter in the list.
     2460                                if ( $this->is_search && in_array( $state, $states_excluded_from_search ) ) {
     2461                                        continue;
     2462                                }
    24522463                                $where .= " OR {$wpdb->posts}.post_status = '$state'";
    24532464                        }
    24542465