cache = CacheManager::for('images')->connectTo('post', 'attachment'); } public function formatImage(int $ID, string $start = 'tiny', string $replace = 'large', bool $addLink = true, ?string $postSlug = null):string { $return = $this->cache->remember( ['ID' => $ID, 'start' => $start, 'replace' => $replace], function() use ($ID, $start, $replace) { $img = wp_get_attachment_image_src($ID, $start); if (!$img) { return''; } $img = $img[0]; $data = $this->getGallerySizes($ID, $replace); $alt = get_post_meta($ID, '_wp_attachment_image_alt', true); $alt = ($alt=='')? '' : ' alt="'.$alt.'" '; return ''; } ); $aOpen = $aClose = ''; if ($addLink) { if (!$postSlug) { global $post; $postSlug = $post->post_name; } $imgPost = get_post($ID); if (!$imgPost) { return $return; } $imgSlug = $imgPost->post_name; $aOpen = ''; $aClose = ''; } return $aOpen.$return.$aClose; } public function getGallerySizes(int $ID, string $replace):string { if (!wp_get_attachment_image_src($ID)) { return ''; } if (!has_image_size($replace)) { $replace = 'large'; } if ($replace == 'large') { return 'data-small="' . wp_get_attachment_image_src($ID)[0] . '" data-medium="' . wp_get_attachment_image_src($ID, 'large')[0] . '" data-full="' . wp_get_attachment_image_src($ID, 'full')[0] . '"'; } elseif ($replace == 'medium') { return 'data-small="'. wp_get_attachment_image_src($ID, 'large')[0].'" data-medium="'. wp_get_attachment_image_src($ID, 'large')[0].'" data-full="'. wp_get_attachment_image_src($ID, 'large')[0].'"'; } elseif ($replace == 'thumbnail') { return 'data-small="'. wp_get_attachment_image_src($ID, 'medium')[0].'" data-medium="'. wp_get_attachment_image_src($ID, 'medium')[0].'" data-full="'. wp_get_attachment_image_src($ID, 'medium')[0].'"'; } return ''; } }