WordPress.org

Make WordPress Core

Ticket #12212: query.php.diff

File query.php.diff, 933 bytes (added by lifeless85, 4 years ago)

a patch to fix postin bug

  • wp-includes/query.php

     
    11921192                        'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and'); 
    11931193 
    11941194                foreach ( $array_keys as $key ) { 
    1195                         if ( !isset($array[$key])) 
     1195                        if ( !isset($array[$key])) { 
     1196                                if ( $key == 'post__in' ) continue; 
    11961197                                $array[$key] = array(); 
     1198                        } 
    11971199                } 
    11981200                return $array; 
    11991201        } 
     
    17201722                // If a post number is specified, load that post 
    17211723                if ( $q['p'] ) { 
    17221724                        $where .= " AND {$wpdb->posts}.ID = " . $q['p']; 
     1725                } elseif ( is_array($q['post__in']) && empty($q['post__in']) ) { 
     1726                        $where = " AND {$wpdb->posts}.ID = NULL"; 
     1727                        $this->set_404(); 
    17231728                } elseif ( $q['post__in'] ) { 
    17241729                        $post__in = implode(',', array_map( 'absint', $q['post__in'] )); 
    17251730                        $where .= " AND {$wpdb->posts}.ID IN ($post__in)";