diff --git a/wp-includes/media.php b/wp-includes/media.php
index 2876e35b32..30df3226ce 100644
--- a/wp-includes/media.php
+++ b/wp-includes/media.php
@@ -1145,7 +1145,7 @@ function wp_img_add_srcset_and_sizes( $image ) {
$size = preg_match( '/size-([^\s|"]+)/i', $image, $match_size ) ? $match_size[1] : false;
$width = preg_match( '/ width="([0-9]+)"/', $image, $match_width ) ? (int) $match_width[1] : false;
- if ( $id && false === $size ) {
+ if ( $id && ! $size ) {
$height = preg_match( '/ height="([0-9]+)"/', $image, $match_height ) ? (int) $match_height[1] : false;
if ( $width && $height ) {
@@ -1153,18 +1153,18 @@ function wp_img_add_srcset_and_sizes( $image ) {
}
}
- $meta = wp_get_attachment_metadata( $id );
-
/*
* If attempts to parse the size value failed, attempt to use the image
* metadata to match the 'src' against the available sizes for an attachment.
*/
- if ( ! $size && ! empty( $id ) && is_array( $meta ) ) {
+ if ( $id && ! $size ) {
+ $meta = wp_get_attachment_metadata( $id );
+
// Parse the image src value from the img element.
$src = preg_match( '/src="([^"]+)"/', $image, $match_src ) ? $match_src[1] : false;
- // Return early if the src value is empty.
- if ( ! $src ) {
+ // Return early if the metadata does not exist or the src value is empty.
+ if ( ! $meta || ! $src ) {
return $image;
}
@@ -1187,16 +1187,18 @@ function wp_img_add_srcset_and_sizes( $image ) {
}
- $srcset = wp_get_attachment_image_srcset( $id, $size );
- $sizes = wp_get_attachment_image_sizes( $id, $size, $width );
-
// If ID and size exist, try for 'srcset' and 'sizes' and update the markup.
- if ( $id && $size && $srcset && $sizes ) {
- // Format the srcset and sizes string and escape attributes.
- $srcset_and_sizes = sprintf( ' srcset="%s" sizes="%s"', esc_attr( $srcset ), esc_attr( $sizes) );
+ if ( $id && $size ) {
+ $srcset = wp_get_attachment_image_srcset( $id, $size );
+ $sizes = wp_get_attachment_image_sizes( $id, $size, $width );
- // Add srcset and sizes attributes to the image markup.
- $image = preg_replace( '/
]+)[\s?][\/?]>/', '
', $image );
+ if ( $srcset && $sizes ) {
+ // Format the srcset and sizes string and escape attributes.
+ $srcset_and_sizes = sprintf( ' srcset="%s" sizes="%s"', esc_attr( $srcset ), esc_attr( $sizes) );
+
+ // Add srcset and sizes attributes to the image markup.
+ $image = preg_replace( '/
]+)[\s?][\/?]>/', '
', $image );
+ }
}
return $image;
diff --git a/wp-includes/version.php b/wp-includes/version.php
index c054887859..90a876fe57 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
-$wp_version = '4.4-beta1-35404';
+$wp_version = '4.4-beta1-35405';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.