diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php index 7b99f95980..ef6baa7bc2 100644 --- a/src/wp-includes/media.php +++ b/src/wp-includes/media.php @@ -985,7 +985,7 @@ function wp_calculate_image_srcset( $size_array, $image_src, $image_meta, $attac */ $image_meta = apply_filters( 'wp_calculate_image_srcset_meta', $image_meta, $size_array, $image_src, $attachment_id ); - if ( empty( $image_meta['sizes'] ) || strlen( $image_meta['file'] ) < 4 ) { + if ( empty( $image_meta['sizes'] ) || ! isset( $image_meta['file'] ) || strlen( $image_meta['file'] ) < 4 ) { return false; } diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php index 5399f858d3..5b68f327e3 100644 --- a/tests/phpunit/tests/media.php +++ b/tests/phpunit/tests/media.php @@ -1183,17 +1183,22 @@ EOF; $image_meta2['sizes'] = ''; $this->assertFalse( wp_calculate_image_srcset( $size_array, $image_src, $image_meta2 ) ); + // File name is incorrect + $image_meta3 = $image_meta; + $image_meta3['file'] = '/'; + $this->assertFalse( wp_calculate_image_srcset( $size_array, $image_src, $image_meta3 ) ); + // File name is incorrect $image_meta4 = $image_meta; - $image_meta4['file'] = '/'; + unset( $image_meta4['file'] ); $this->assertFalse( wp_calculate_image_srcset( $size_array, $image_src, $image_meta4 ) ); // Intermediate size is string instead of array. - $image_meta3 = $image_meta; - $image_meta3['sizes']['medium_large'] = ''; + $image_meta5 = $image_meta; + $image_meta5['sizes']['medium_large'] = ''; unset( $srcset[768] ); $expected_srcset = implode( ', ', $srcset ); - $this->assertSame( $expected_srcset, wp_calculate_image_srcset( $size_array, $image_src, $image_meta3 ) ); + $this->assertSame( $expected_srcset, wp_calculate_image_srcset( $size_array, $image_src, $image_meta5 ) ); } /**