diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php index 56b38edf2..6f6996e5d 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php @@ -463,10 +463,10 @@ public function get_transformations_from_string( $str, $type = 'image' ) { * @return string Cloudinary URL. */ public function attachment_url( $url, $attachment_id ) { - if ( ! doing_action( 'wp_insert_post_data' ) && ! is_admin() ) { + if ( ! doing_action( 'wp_insert_post_data' ) && false === $this->in_downsize ) { $cloudinary_id = $this->cloudinary_id( $attachment_id ); if ( false !== $cloudinary_id ) { - $url = $this->cloudinary_url( $attachment_id, $cloudinary_id ); + $url = $this->cloudinary_url( $attachment_id ); } } @@ -722,10 +722,17 @@ public function filter_downsize( $image, $attachment_id, $size ) { if ( false !== $cloudinary_id ) { $this->in_downsize = true; - $image = image_downsize( $attachment_id, $size ); + $intermediate = image_get_intermediate_size( $attachment_id, $size ); + if ( is_array( $intermediate ) ) { + // Found an intermediate size. + $image = array( + $this->convert_url( $intermediate['url'], $attachment_id, array(), false ), + $intermediate['width'], + $intermediate['height'], + true, + ); + } $this->in_downsize = false; - - $image[0] = $this->convert_url( $image[0], $attachment_id ); } return $image;