WordPress.org

Make WordPress Core

Ticket #28099: 28099-revert.diff

File 28099-revert.diff, 5.0 KB (added by wonderboymusic, 7 years ago)
  • src/wp-includes/query.php

     
    18301830                                'field' => 'term_id',
    18311831                                'include_children' => false
    18321832                        );
    1833                 } elseif ( isset( $this->query['category__in'] ) ) {
    1834                         $q['category__in'] = false;
    18351833                }
    18361834
    18371835                if ( ! empty($q['category__not_in']) ) {
     
    18891887                                'taxonomy' => 'post_tag',
    18901888                                'terms' => $q['tag__in']
    18911889                        );
    1892                 } elseif ( isset( $this->query['tag__in'] ) ) {
    1893                         $q['tag__in'] = false;
    18941890                }
    18951891
    18961892                if ( !empty($q['tag__not_in']) ) {
     
    19181914                                'terms' => $q['tag_slug__in'],
    19191915                                'field' => 'slug'
    19201916                        );
    1921                 } elseif ( isset( $this->query['tag_slug__in'] ) ) {
    1922                         $q['tag_slug__in'] = false;
    19231917                }
    19241918
    19251919                if ( !empty($q['tag_slug__and']) ) {
     
    24512445                } elseif ( $q['post__in'] ) {
    24522446                        $post__in = implode(',', array_map( 'absint', $q['post__in'] ));
    24532447                        $where .= " AND {$wpdb->posts}.ID IN ($post__in)";
    2454                 } elseif ( isset( $this->query['post__in'] ) ) {
    2455                         $post__in = 0;
    2456                         $where .= " AND 1=0 ";
    24572448                } elseif ( $q['post__not_in'] ) {
    24582449                        $post__not_in = implode(',',  array_map( 'absint', $q['post__not_in'] ));
    24592450                        $where .= " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
     
    24642455                } elseif ( $q['post_parent__in'] ) {
    24652456                        $post_parent__in = implode( ',', array_map( 'absint', $q['post_parent__in'] ) );
    24662457                        $where .= " AND {$wpdb->posts}.post_parent IN ($post_parent__in)";
    2467                 } elseif ( isset( $this->query['post_parent__in'] ) ) {
    2468                         $post_parent__in = 0;
    2469                         $where .= " AND 1=0 ";
    24702458                } elseif ( $q['post_parent__not_in'] ) {
    24712459                        $post_parent__not_in = implode( ',',  array_map( 'absint', $q['post_parent__not_in'] ) );
    24722460                        $where .= " AND {$wpdb->posts}.post_parent NOT IN ($post_parent__not_in)";
     
    25062494                        $where .= $clauses['where'];
    25072495                }
    25082496
    2509                 // If *__in is passed to WP_Query as an empty array, don't return results
    2510                 foreach ( array( 'category', 'tag', 'tag_slug' ) as $in ) {
    2511                         if ( isset( $q["{$in}__in"] ) && false === $q["{$in}__in"] ) {
    2512                                 $where = " AND 1=0 $where";
    2513                         }
    2514                 }
    2515 
    25162497                if ( $this->is_tax ) {
    25172498                        if ( empty($post_type) ) {
    25182499                                // Do a fully inclusive search for currently registered post types of queried taxonomies
     
    26042585                } elseif ( ! empty( $q['author__in'] ) ) {
    26052586                        $author__in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__in'] ) ) );
    26062587                        $where .= " AND {$wpdb->posts}.post_author IN ($author__in) ";
    2607                 } elseif ( isset( $this->query['author__in'] ) ) {
    2608                         $author__in = 0;
    2609                         $where .= ' AND 1=0 ';
    26102588                }
    26112589
    26122590                // Author stuff for nice URLs
  • tests/phpunit/tests/query/results.php

     
    402402
    403403        }
    404404
    405         function test_empty_post__in() {
    406                 $posts1 = $this->q->query( array() );
    407                 $this->assertNotEmpty( $posts1 );
    408                 $posts2 = $this->q->query( array( 'post__in' => array() ) );
    409                 $this->assertEmpty( $posts2 );
    410                 $posts3 = $this->q->query( array( 'post_parent__in' => array() ) );
    411                 $this->assertEmpty( $posts3 );
    412         }
    413 
    414405        function test_exlude_from_search_empty() {
    415406                global $wp_post_types;
    416407                foreach ( array_keys( $wp_post_types ) as $slug )
     
    513504                $author_ids = array_unique( wp_list_pluck( $posts, 'post_author' ) );
    514505                $this->assertEqualSets( array( $author_1, $author_2 ), $author_ids );
    515506
    516                 $posts = $this->q->query( array( 'author__in' => array() ) );
    517                 $this->assertEmpty( $posts );
    518 
    519507                $posts = $this->q->query( array(
    520508                        'author__not_in' => array( $author_1, $author_2 ),
    521509                        'post__in' => array( $post_1, $post_2, $post_3, $post_4 )
  • tests/phpunit/tests/term/query.php

     
    202202
    203203                $this->assertEquals( array( $posts[0], $posts[3] ), $results2, 'Relation: AND; Operator: IN' );
    204204        }
    205 
    206         function test_empty__in() {
    207                 $cat_id = $this->factory->category->create();
    208                 $post_id = $this->factory->post->create();
    209                 wp_set_post_categories( $post_id, $cat_id );
    210 
    211                 $q1 = get_posts( array( 'category__in' => array( $cat_id ) ) );
    212                 $this->assertNotEmpty( $q1 );
    213                 $q2 = get_posts( array( 'category__in' => array() ) );
    214                 $this->assertEmpty( $q2 );
    215 
    216                 $tag = wp_insert_term( 'woo', 'post_tag' );
    217                 $tag_id = $tag['term_id'];
    218                 $slug = get_tag( $tag_id )->slug;
    219                 wp_set_post_tags( $post_id, $slug );
    220 
    221                 $q3 = get_posts( array( 'tag__in' => array( $tag_id ) ) );
    222                 $this->assertNotEmpty( $q3 );
    223                 $q4 = get_posts( array( 'tag__in' => array() ) );
    224                 $this->assertEmpty( $q4 );
    225 
    226                 $q5 = get_posts( array( 'tag_slug__in' => array( $slug ) ) );
    227                 $this->assertNotEmpty( $q5 );
    228                 $q6 = get_posts( array( 'tag_slug__in' => array() ) );
    229                 $this->assertEmpty( $q6 );
    230         }
    231205}