From 1acf9e9e4942a94c142658cfc9419a3d1b215ec9 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 26 Oct 2015 18:42:24 +0000 Subject: [PATCH] After [35402], don't unnecessary run `wp_get_attachment_metadata()`, `wp_get_attachment_image_srcset()`, and `wp_get_attachment_image_sizes()` in `wp_img_add_srcset_and_sizes()`. See #34379. Built from https://develop.svn.wordpress.org/trunk@35405 git-svn-id: http://core.svn.wordpress.org/trunk@35369 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/media.php | 30 ++++++++++++++++-------------- wp-includes/version.php | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) 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.