WordPress.org

Make WordPress Core

Ticket #12891: scale.12891.6b.diff

File scale.12891.6b.diff, 950 bytes (added by markjaquith, 8 years ago)

Updated patch (old one had conflicts).

  • wp-includes/taxonomy.php

     
    542542                                return ' AND 0 = 1';
    543543                }
    544544
    545                 if ( !in_array( $operator, array( 'IN', 'NOT IN' ) ) )
    546                         $operator = 'IN';
    547 
    548545                $taxonomies = "'" . implode( "', '", $taxonomies ) . "'";
    549546
    550547                $terms = array_unique( (array) $terms );
     
    587584
    588585                        $i++;
    589586                }
    590                 else {
    591                         // NOT IN is very slow for some reason
    592                         $where .= " AND $primary_table.$primary_id_column IN (
    593                                 SELECT object_id
    594                                 FROM $wpdb->term_relationships
    595                                 WHERE term_taxonomy_id $operator ($terms)
     587                elseif ( 'NOT IN' == $operator ) {
     588                        $where .= " AND $primary_table.$primary_id_column NOT IN (
     589                                SELECT object_id
     590                                FROM $wpdb->term_relationships
     591                                WHERE term_taxonomy_id IN ($terms)
    596592                        )";
    597593                }
    598594        }
    599 
    600595        return compact( 'join', 'where' );
    601596}
    602597