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 '';
}
}