I am trying to display an image or video in the place of woocommerce product featured image based on the attachment type. For this, I am trying to check if the post attachment is an image or a video.
I googled and found that get_post_mime_type()
will do that job and with the help of wordpress function reference page here, I added the following code but it is not giving me required output, the switch case is always going to default case and I am unable to check the attachment mime type. Did anyone face this issue earlier?
function get_icon_for_attachment($post_id) {
$base = get_template_directory_uri() . "/images/icons/";
$type = get_post_mime_type($post_id);
switch ($type) {
case 'image/jpeg':
case 'image/png':
case 'image/gif':
return $base . "image.png"; break;
case 'video/mpeg':
case 'video/mp4':
case 'video/quicktime':
return $base . "video.png"; break;
case 'text/csv':
case 'text/plain':
case 'text/xml':
return $base . "text.png"; break;
default:
return $base . "file.png";
}
}
// call it like this:
echo '<img src="'.get_icon_for_attachment($my_attachment->ID).'" />';