Ticket #18778: transform_query_filters.diff
File transform_query_filters.diff, 1.3 KB (added by , 14 years ago) |
---|
-
wp-includes/taxonomy.php
761 761 case 'slug': 762 762 case 'name': 763 763 $terms = "'" . implode( "','", array_map( 'sanitize_title_for_query', $query['terms'] ) ) . "'"; 764 $ terms = $wpdb->get_col("764 $sql_query = " 765 765 SELECT $wpdb->term_taxonomy.$resulting_field 766 766 FROM $wpdb->term_taxonomy 767 767 INNER JOIN $wpdb->terms USING (term_id) 768 768 WHERE taxonomy = '{$query['taxonomy']}' 769 769 AND $wpdb->terms.{$query['field']} IN ($terms) 770 " ); 770 "; 771 $terms = apply_filters( 'transform_query_' . $query['field'], false, $sql_query ); 772 if ( false === $terms ) 773 $terms = $wpdb->get_col( $sql_query ); 771 774 break; 772 775 773 776 default: 774 777 $terms = implode( ',', array_map( 'intval', $query['terms'] ) ); 775 $ terms = $wpdb->get_col("778 $sql_query = " 776 779 SELECT $resulting_field 777 780 FROM $wpdb->term_taxonomy 778 781 WHERE taxonomy = '{$query['taxonomy']}' 779 782 AND term_id IN ($terms) 780 " ); 783 "; 784 $terms = apply_filters( 'transform_query_default', false, $sql_query ); 785 if ( false === $terms ) 786 $terms = $wpdb->get_col( $sql_query ); 781 787 } 782 788 783 789 if ( 'AND' == $query['operator'] && count( $terms ) < count( $query['terms'] ) ) {