I added add_image_size in functions.php and its resize the images when the image is large enough, but when the image is smaller than the size its not resize the image.
For example, i added add_image_size( 'category', 255, 150, true );.
But user upload some image with size 150x150, it's not large enough.
This my code for resize image when it's smaller than the size i need:
if ( !function_exists( 'mit_resize') ) {
function mit_resize( $attachment, $width, $height, $url = false, $crop = true ) {
$siteurl = get_option( 'siteurl' );
if ( $url === false ) {
$file_path = get_attached_file( $attachment );
} else if ( $attachment ) {
$file_path = get_attached_file(mit_get_attachment_id($attachment));
}
if ( empty($file_path) )
return false;
$file_info = pathinfo( $file_path );
$extension = '.'. $file_info['extension'];
$base_file = $file_info['dirname'].'/'.$file_info['filename'].$extension;
$sizes = mit_get_image_sizes();
$general = getimagesize($base_file);
foreach ($sizes as $key => $size) {
if($size['width'] == $width && $size['height'] == $height && $general[0] >= $size['width'] && $general[1] >= $size['height']) {
$path = explode('wp-content',$file_info['dirname'].'/'.$file_info['filename'].'-'.$width.'x'.$height.$extension);
return $siteurl . '/wp-content' . $path[1];
}
}
if (file_exists($base_file))
{
$no_ext_path = $file_info['dirname'].'/'.$file_info['filename'];
$img_resize = wp_get_image_editor( $no_ext_path.$extension);
if ( ! is_wp_error( $img_resize ) ) {
$cropped_img_path = $no_ext_path.'-'.$width.'x'.$height.$extension;
$img_resize->resize( $width, $height, $crop );
$img_resize->save($cropped_img_path);
if (preg_match("/wp-content/", $cropped_img_path) != false) {
$path = explode('wp-content',$cropped_img_path);
}
else
return 'http://placehold.it/' . $width .'x' . $height . '?text=Img';
$url_file = $siteurl . '/wp-content' .$path[1];
}
}
if ( !file_exists($cropped_img_path) )
{
return 'http://placehold.it/' . $width .'x' . $height . '?text=Img';
}
else
return $url_file;
}
}
Can i hook this function to add_image_size?