Changeset 15565 for trunk/wp-includes/functions.php
- Timestamp:
- 09/05/2010 01:31:33 PM (15 years ago)
- File:
-
- 1 edited
-
trunk/wp-includes/functions.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/functions.php
r15496 r15565 4220 4220 4221 4221 /* 4222 * Used internally to generate an SQL string for searching across multiple meta key = value pairs 4223 * 4224 * @access private 4225 * @since 3.1.0 4226 * 4227 * @param array $queries An array of queries 4228 * @return string 4229 */ 4230 function _wp_meta_sql( $queries, $meta_id_column, $table ) { 4231 global $wpdb; 4232 4233 $clauses = array(); 4234 4235 foreach ( $queries as $query ) { 4236 $meta_key = trim( @$query['meta_key'] ); 4237 $meta_value = trim( @$query['meta_value'] ); 4238 $meta_compare = @$query['meta_compare']; 4239 4240 if ( empty( $meta_compare ) || !in_array( $meta_compare, array( '=', '!=', '>', '>=', '<', '<=', 'like' ) ) ) 4241 $meta_compare = '='; 4242 4243 if ( empty( $meta_key ) ) 4244 continue; 4245 4246 $clause = $wpdb->prepare( "WHEN %s THEN meta_value ", $meta_key ); 4247 4248 if ( empty( $meta_value ) ) { 4249 $clauses[] = $clause . "IS NOT NULL"; 4250 } elseif ( 'like' == $meta_compare ) { 4251 $clauses[] = $clause . $wpdb->prepare( "LIKE %s", '%' . like_escape( $meta_value ) . '%' ); 4252 } else { 4253 $clauses[] = $clause . $wpdb->prepare( "$meta_compare %s", $meta_value ); 4254 } 4255 } 4256 4257 if ( empty( $clauses ) ) 4258 return ''; 4259 4260 return " 4261 SELECT $meta_id_column 4262 FROM $table 4263 WHERE CASE meta_key 4264 " . implode( "\n", $clauses ) . " 4265 END 4266 GROUP BY $meta_id_column 4267 HAVING COUNT(*) = " . count( $clauses ); 4268 } 4269 4270 4271 /* 4222 4272 * Used internally to tidy up the search terms 4223 4273 *
Note: See TracChangeset
for help on using the changeset viewer.