Changeset 39629
- Timestamp:
- 12/21/2016 05:18:24 AM (8 years ago)
- Location:
- branches/4.7
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/4.7
-
branches/4.7/src/wp-admin/includes/post.php
r39391 r39629 1153 1153 1154 1154 return $q; 1155 }1156 1157 /**1158 * Filter the SQL clauses of an attachment query to include filenames.1159 *1160 * @since 4.7.01161 * @access private1162 *1163 * @global wpdb $wpdb WordPress database abstraction object.1164 *1165 * @param array $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY,1166 * DISTINCT, fields (SELECT), and LIMITS clauses.1167 * @return array The modified clauses.1168 */1169 function _filter_query_attachment_filenames( $clauses ) {1170 global $wpdb;1171 remove_filter( 'posts_clauses', __FUNCTION__ );1172 1173 // Add a LEFT JOIN of the postmeta table so we don't trample existing JOINs.1174 $clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )";1175 1176 $clauses['groupby'] = "{$wpdb->posts}.ID";1177 1178 $clauses['where'] = preg_replace(1179 "/\({$wpdb->posts}.post_content (NOT LIKE|LIKE) (\'[^']+\')\)/",1180 "$0 OR ( sq1.meta_value $1 $2 )",1181 $clauses['where'] );1182 1183 return $clauses;1184 1155 } 1185 1156 -
branches/4.7/src/wp-includes/post.php
r39507 r39629 6189 6189 return $post_name; 6190 6190 } 6191 6192 /** 6193 * Filter the SQL clauses of an attachment query to include filenames. 6194 * 6195 * @since 4.7.0 6196 * @access private 6197 * 6198 * @global wpdb $wpdb WordPress database abstraction object. 6199 * 6200 * @param array $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY, 6201 * DISTINCT, fields (SELECT), and LIMITS clauses. 6202 * @return array The modified clauses. 6203 */ 6204 function _filter_query_attachment_filenames( $clauses ) { 6205 global $wpdb; 6206 remove_filter( 'posts_clauses', __FUNCTION__ ); 6207 6208 // Add a LEFT JOIN of the postmeta table so we don't trample existing JOINs. 6209 $clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )"; 6210 6211 $clauses['groupby'] = "{$wpdb->posts}.ID"; 6212 6213 $clauses['where'] = preg_replace( 6214 "/\({$wpdb->posts}.post_content (NOT LIKE|LIKE) (\'[^']+\')\)/", 6215 "$0 OR ( sq1.meta_value $1 $2 )", 6216 $clauses['where'] ); 6217 6218 return $clauses; 6219 } -
branches/4.7/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
r39348 r39629 46 46 $query_args['post_mime_type'] = $request['mime_type']; 47 47 } 48 } 49 50 // Filter query clauses to include filenames. 51 if ( isset( $query_args['s'] ) ) { 52 add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); 48 53 } 49 54 -
branches/4.7/tests/phpunit/tests/rest-api/rest-attachments-controller.php
r39610 r39629 1157 1157 } 1158 1158 1159 public function test_search_item_by_filename() { 1160 $id = $this->factory->attachment->create_object( $this->test_file, 0, array( 1161 'post_mime_type' => 'image/jpeg', 1162 ) ); 1163 $id2 = $this->factory->attachment->create_object( $this->test_file2, 0, array( 1164 'post_mime_type' => 'image/png', 1165 ) ); 1166 1167 $filename = basename( $this->test_file2 ); 1168 1169 $request = new WP_REST_Request( 'GET', '/wp/v2/media' ); 1170 $request->set_param( 'search', $filename ); 1171 $response = $this->server->dispatch( $request ); 1172 $data = $response->get_data(); 1173 1174 $this->assertCount( 1, $data ); 1175 $this->assertEquals( $id2, $data[0]['id'] ); 1176 $this->assertEquals( 'image/png', $data[0]['mime_type'] ); 1177 } 1178 1159 1179 public function additional_field_get_callback( $object, $request ) { 1160 1180 return 123;
Note: See TracChangeset
for help on using the changeset viewer.