WordPress.org

Make WordPress Core

Ticket #12212: query.php.diff

File query.php.diff, 933 bytes (added by lifeless85, 8 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)";