/** * Replace local URLs with S3 ones for srcset image sources * * @param array $sources * @param array $size_array * @param string $image_src * @param array $image_meta * @param int $attachment_id * * @return array */ public function wp_calculate_image_srcset($sources, $size_array, $image_src, $image_meta, $attachment_id) { if (!is_array($sources)) { // Sources corrupt return $sources; } if (!($s3object = $this->as3cf->is_attachment_served_by_s3($attachment_id))) { // Attachment not uploaded to S3, abort return $sources; } foreach ($sources as $width => $source) { $filename = basename($source['url']); $size = $this->find_image_size_from_width($image_meta['sizes'], $width, $filename); $s3_url = $this->as3cf->get_attachment_s3_url($attachment_id, $s3object, null, $size, $image_meta); if (false === $s3_url || is_wp_error($s3_url)) { continue; } $sources[$width]['url'] = $s3_url; } return $sources; }