WordPress.org

Make WordPress Core

Changeset 29650


Ignore:
Timestamp:
08/27/2014 08:22:35 PM (6 years ago)
Author:
nacin
Message:

Meta Query: Revert [28659] (and [28665]) due to regressions.

props boonebgorges.
fixes #29285. see #25538.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/meta.php

    r29421 r29650  
    10121012        }
    10131013
    1014         $where_meta_key = array();
    10151014        foreach ( $queries as $k => $q ) {
    10161015            $meta_key = isset( $q['key'] ) ? trim( $q['key'] ) : '';
     
    10551054
    10561055            $where[$k] = '';
    1057             if ( ! empty( $meta_key ) ) {
    1058                 if ( isset( $q['compare'] ) ) {
    1059                     $where_meta_key[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
    1060                 } else {
    1061                     $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
    1062                 }
    1063             }
     1056            if ( !empty( $meta_key ) )
     1057                $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
    10641058
    10651059            if ( is_null( $meta_value ) ) {
    1066                 if ( empty( $where[$k] ) && empty( $where_meta_key ) ) {
     1060                if ( empty( $where[$k] ) )
    10671061                    unset( $join[$i] );
    1068                 }
    10691062                continue;
    10701063            }
     
    11061099        else
    11071100            $where = ' AND (' . implode( "\n{$this->relation} ", $where ) . ' )';
    1108 
    1109         if ( ! empty( $where_meta_key ) ) {
    1110             $where .= "\nAND (" . implode( "\nAND ", $where_meta_key ) . ' )';
    1111         }
    11121101
    11131102        $join = implode( "\n", $join );
  • trunk/tests/phpunit/tests/meta.php

    r29421 r29650  
    199199    }
    200200
    201     function test_query_meta_query_order() {
    202         $post1 = $this->factory->post->create( array( 'post_title' => 'meta-value-1', 'post_date' => '2007-01-01 00:00:00' ) );
    203         $post2 = $this->factory->post->create( array( 'post_title' => 'meta-value-2', 'post_date' => '2007-01-01 00:00:00' ) );
    204         $post3 = $this->factory->post->create( array( 'post_title' => 'meta-value-3', 'post_date' => '2007-01-01 00:00:00' ) );
    205 
    206         add_post_meta( $post1, 'order', 1 );
    207         add_post_meta( $post2, 'order', 2 );
    208         add_post_meta( $post3, 'order', 3 );
    209 
    210         $args = array(
    211             'post_type' => 'post',
    212             'meta_key' => 'order',
    213             'meta_value' => 1,
    214             'meta_compare' => '>=',
    215             'orderby' => 'meta_value'
    216         );
    217 
    218         $args2 = array(
    219             'post_type' => 'post',
    220             'meta_key' => 'order',
    221             'meta_value' => 1,
    222             'meta_compare' => '>=',
    223             'orderby' => 'meta_value',
    224             'meta_query' => array(
    225                 'relation' => 'OR',
    226                 array(
    227                     'key' => 'order',
    228                     'compare' => '>=',
    229                     'value' => 1
    230                 )
    231             )
    232         );
    233 
    234         $posts = get_posts( $args );
    235         $posts2 = get_posts( $args2 );
    236 
    237         $this->assertEquals( wp_list_pluck( $posts, 'post_title' ), wp_list_pluck( $posts2, 'post_title' ) );
    238     }
    239 
    240201    /**
    241202     * @ticket 28315
Note: See TracChangeset for help on using the changeset viewer.