- Timestamp:
- 12/18/2015 05:43:46 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/taxonomy.php
r35907 r36003 1354 1354 // Meta query support. 1355 1355 $join = ''; 1356 $distinct = ''; 1356 1357 if ( ! empty( $args['meta_query'] ) ) { 1357 1358 $mquery = new WP_Meta_Query( $args['meta_query'] ); … … 1360 1361 $join .= $mq_sql['join']; 1361 1362 $where .= $mq_sql['where']; 1363 $distinct .= "DISTINCT"; 1362 1364 } 1363 1365 … … 1409 1411 $join .= " INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id"; 1410 1412 1411 $pieces = array( 'fields', 'join', 'where', ' orderby', 'order', 'limits' );1413 $pieces = array( 'fields', 'join', 'where', 'distinct', 'orderby', 'order', 'limits' ); 1412 1414 1413 1415 /** … … 1425 1427 $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : ''; 1426 1428 $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : ''; 1429 $distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : ''; 1427 1430 $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : ''; 1428 1431 $order = isset( $clauses[ 'order' ] ) ? $clauses[ 'order' ] : ''; 1429 1432 $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : ''; 1430 1433 1431 $query = "SELECT $ fields FROM $wpdb->terms AS t $join WHERE $where $orderby $order $limits";1434 $query = "SELECT $distinct $fields FROM $wpdb->terms AS t $join WHERE $where $orderby $order $limits"; 1432 1435 1433 1436 // $args can be anything. Only use the args defined in defaults to compute the key. -
trunk/tests/phpunit/tests/term/getTerms.php
r35242 r36003 1572 1572 1573 1573 /** 1574 * @ticket 35137 1575 */ 1576 public function test_meta_query_should_not_return_duplicates() { 1577 register_taxonomy( 'wptests_tax', 'post' ); 1578 $terms = self::factory()->term->create_many( 1, array( 'taxonomy' => 'wptests_tax' ) ); 1579 add_term_meta( $terms[0], 'foo', 'bar' ); 1580 add_term_meta( $terms[0], 'foo', 'ber' ); 1581 1582 $found = get_terms( 'wptests_tax', array( 1583 'hide_empty' => false, 1584 'meta_query' => array( 1585 array( 1586 'key' => 'foo', 1587 'value' => 'bur', 1588 'compare' => '!=', 1589 ), 1590 ), 1591 'fields' => 'ids', 1592 ) ); 1593 1594 $this->assertEqualSets( array( $terms[0] ), $found ); 1595 } 1596 1597 /** 1574 1598 * @ticket 14162 1575 1599 */
Note: See TracChangeset
for help on using the changeset viewer.