diff --git a/projects/packages/image-cdn/changelog/fix-photon-deprecation-notice b/projects/packages/image-cdn/changelog/fix-photon-deprecation-notice new file mode 100644 index 0000000000000..bfccccc097d80 --- /dev/null +++ b/projects/packages/image-cdn/changelog/fix-photon-deprecation-notice @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Avoid deprecation notice when an image URL does not have an expected format. diff --git a/projects/packages/image-cdn/src/class-image-cdn.php b/projects/packages/image-cdn/src/class-image-cdn.php index 7f82a5b1809d7..31998fd89ed4c 100644 --- a/projects/packages/image-cdn/src/class-image-cdn.php +++ b/projects/packages/image-cdn/src/class-image-cdn.php @@ -357,11 +357,21 @@ public static function filter_the_content( $content ) { continue; } + // Identify image source. + $src_orig = $processor->get_attribute( 'src' ); + $src = $src_orig; + /* - * Only examine tags that are considered an image. If encountering - * a closing tag then this is not the image being sought. + * Only examine tags that are considered an image, + * with a valid src attribute. + * If encountering a closing tag then this is not the image being sought. */ - if ( $processor->is_tag_closer() || ! in_array( $processor->get_tag(), $image_tags, true ) ) { + if ( + $processor->is_tag_closer() + || ! in_array( $processor->get_tag(), $image_tags, true ) + || ! is_string( $src ) + || $src === '' + ) { continue; } @@ -397,10 +407,6 @@ public static function filter_the_content( $content ) { // Flag if we need to munge a fullsize URL. $fullsize_url = false; - // Identify image source. - $src_orig = $processor->get_attribute( 'src' ); - $src = $src_orig; - /** * Allow specific images to be skipped by Photon. * @@ -679,7 +685,11 @@ public static function filter_the_content( $content ) { $processor->set_attribute( 'data-recalc-dims', '1' ); } } - } elseif ( preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) && is_string( $nearest_preceding_href ) && self::validate_image_url( $nearest_preceding_href ) ) { + } elseif ( + preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) + && is_string( $nearest_preceding_href ) + && self::validate_image_url( $nearest_preceding_href ) + ) { $processor->seek( 'link' ); $processor->set_attribute( 'href', Image_CDN_Core::cdn_url( $nearest_preceding_href ) ); $processor->seek( 'image' );