Ticket #39768: 39768.3.diff
File 39768.3.diff, 2.8 KB (added by , 5 years ago) |
---|
-
src/wp-includes/media.php
4295 4295 } 4296 4296 4297 4297 $sql = $wpdb->prepare( 4298 "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s",4298 "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s", 4299 4299 $path 4300 4300 ); 4301 4301 4302 $post_id = $wpdb->get_var( $sql ); 4302 $results = $wpdb->get_results( $sql ); 4303 $post_id = null; 4303 4304 4305 if ( $results ) { 4306 // Use the first available result, but prefer a case-sensitive match, if exists. 4307 $post_id = reset( $results )->post_id; 4308 4309 if ( count( $results ) > 1 ) { 4310 foreach ( $results as $result ) { 4311 if ( $path === $result->meta_value ) { 4312 $post_id = $result->post_id; 4313 break; 4314 } 4315 } 4316 } 4317 } 4318 4304 4319 /** 4305 4320 * Filters an attachment id found by URL. 4306 4321 * -
tests/phpunit/tests/media.php
1058 1058 $this->assertEquals( $attachment_id, attachment_url_to_postid( $image_url ) ); 1059 1059 } 1060 1060 1061 function test_attachment_url_to_postid_schemes() { 1061 /** 1062 * @ticket 33109 1063 */ 1064 function test_attachment_url_to_postid_with_different_scheme() { 1062 1065 $image_path = '2014/11/' . $this->img_name; 1063 1066 $attachment_id = self::factory()->attachment->create_object( 1064 1067 $image_path, … … 1069 1072 ) 1070 1073 ); 1071 1074 1072 /**1073 * @ticket 33109 Testing protocols not matching1074 */1075 1075 $image_url = 'https://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_path; 1076 1076 $this->assertEquals( $attachment_id, attachment_url_to_postid( $image_url ) ); 1077 1077 } 1078 1078 1079 /** 1080 * @ticket 39768 1081 */ 1082 function test_attachment_url_to_postid_should_be_case_sensitive() { 1083 $image_path_lower_case = '2014/11/' . $this->img_name; 1084 $attachment_id_lower_case = self::factory()->attachment->create_object( 1085 $image_path_lower_case, 1086 0, 1087 array( 1088 'post_mime_type' => 'image/jpeg', 1089 'post_type' => 'attachment', 1090 ) 1091 ); 1092 1093 $image_path_upper_case = '2014/11/' . ucfirst( $this->img_name ); 1094 $attachment_id_upper_case = self::factory()->attachment->create_object( 1095 $image_path_upper_case, 1096 0, 1097 array( 1098 'post_mime_type' => 'image/jpeg', 1099 'post_type' => 'attachment', 1100 ) 1101 ); 1102 1103 $image_url = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $image_path_upper_case; 1104 $this->assertEquals( $attachment_id_upper_case, attachment_url_to_postid( $image_url ) ); 1105 } 1106 1079 1107 function test_attachment_url_to_postid_filtered() { 1080 1108 $image_path = '2014/11/' . $this->img_name; 1081 1109 $attachment_id = self::factory()->attachment->create_object(