Make WordPress Core

Changeset 16512


Ignore:
Timestamp:
11/20/2010 09:28:50 PM (14 years ago)
Author:
scribu
Message:

Fix logic for when excluding a non-existant term. See #12891

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/query.php

    r16511 r16512  
    19481948            $clauses = call_user_func_array( 'get_tax_sql', array( $this->tax_query, $wpdb->posts, 'ID', &$this) );
    19491949
    1950             if ( empty($clauses['join']) && empty($clauses['where']) ) {
    1951                 $where .= ' AND 0 = 1';
    1952             } else {
    1953                 $join .= $clauses['join'];
    1954                 $where .= $clauses['where'];
    1955             }
     1950            $join .= $clauses['join'];
     1951            $where .= $clauses['where'];
    19561952
    19571953            if ( $this->is_tax ) {
  • trunk/wp-includes/taxonomy.php

    r16511 r16512  
    553553            _transform_terms( $terms, $taxonomies, $field, 'term_id' );
    554554
    555             if ( empty( $terms ) )
    556                 continue;
    557 
    558555            $children = array();
    559556            foreach ( $terms as $term ) {
     
    569566        }
    570567
    571         if ( empty( $terms ) )
    572             continue;
    573 
    574         $terms = implode( ',', $terms );
    575 
    576568        if ( 'IN' == $operator ) {
     569            if ( empty( $terms ) )
     570                return array( 'join' => '', 'where' => ' AND 0 = 1');
     571
     572            $terms = implode( ',', $terms );
     573
    577574            $alias = $i ? 'tt' . $i : $wpdb->term_relationships;
    578575
     
    586583        }
    587584        elseif ( 'NOT IN' == $operator ) {
     585            if ( empty( $terms ) )
     586                continue;
     587
     588            $terms = implode( ',', $terms );
     589
    588590            $where .= " AND $primary_table.$primary_id_column NOT IN (
    589591                SELECT object_id
     
    599601function _transform_terms( &$terms, $taxonomies, $field, $resulting_field ) {
    600602    global $wpdb;
     603
     604    if ( empty( $terms ) )
     605        return;
    601606
    602607    if ( $field == $resulting_field )
Note: See TracChangeset for help on using the changeset viewer.