Last active
April 23, 2020 18:21
-
-
Save wpjess/dc02cc04ebbb6b1b607a1105162298c8 to your computer and use it in GitHub Desktop.
WP resize images
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/////////////////////////////////////////////////////////////////// | |
// RESIZE IMAGES ON THE FLY | |
/////////////////////////////////////////////////////////////////// | |
require_once(TEMPLATEPATH . '/functions/resize.php'); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$thumb = get_post_thumbnail_id(); | |
$image = vt_resize( $thumb, '', 150, 150, true ); | |
?> | |
<img src="<?php echo $image['url']; ?>" alt="<?php the_title(); ?>" title="" /> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (!function_exists('vt_resize')) | |
{ | |
function vt_resize($attach_id = null, $img_url = null, $width, $height, $crop = false) | |
{ | |
if ($attach_id) | |
{ | |
$image_src = wp_get_attachment_image_src($attach_id, 'full'); | |
$file_path = get_attached_file($attach_id); | |
} | |
else if ($img_url) | |
{ | |
$file_path = parse_url($img_url); | |
$file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path']; | |
if (file_exists($file_path) === false) | |
{ | |
global $blog_id; | |
$file_path = parse_url($img_url); | |
if (preg_match("/files/", $file_path['path'])) | |
{ | |
$path = explode('/', $file_path['path']); | |
foreach ($path as $k => $v) | |
{ | |
if ($v == 'files') | |
{ | |
$path[$k - 1] = 'wp-content/blogs.dir/' . $blog_id; | |
} | |
} | |
$path = implode('/', $path); | |
} | |
$file_path = $_SERVER['DOCUMENT_ROOT'] . $path; | |
} | |
$orig_size = getimagesize($file_path); | |
$image_src[0] = $img_url; | |
$image_src[1] = $orig_size[0]; | |
$image_src[2] = $orig_size[1]; | |
} | |
$file_info = pathinfo($file_path); | |
$base_file = $file_info['dirname'] . '/' . $file_info['filename'] . '.' . $file_info['extension']; | |
if (!file_exists($base_file)) | |
return; | |
$extension = '.' . $file_info['extension']; | |
$no_ext_path = $file_info['dirname'] . '/' . $file_info['filename']; | |
$cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . $extension; | |
if ($image_src[1] > $width) | |
{ | |
if (file_exists($cropped_img_path)) | |
{ | |
$cropped_img_url = str_replace(basename($image_src[0]), basename($cropped_img_path), $image_src[0]); | |
$vt_image = array( | |
'url' => $cropped_img_url, | |
'width' => $width, | |
'height' => $height | |
); | |
return $vt_image; | |
} | |
if ($crop == false or !$height) | |
{ | |
$proportional_size = wp_constrain_dimensions($image_src[1], $image_src[2], $width, $height); | |
$resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension; | |
if (file_exists($resized_img_path)) | |
{ | |
$resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]); | |
$vt_image = array( | |
'url' => $resized_img_url, | |
'width' => $proportional_size[0], | |
'height' => $proportional_size[1] | |
); | |
return $vt_image; | |
} | |
} | |
$img_size = getimagesize($file_path); | |
if ($img_size[0] <= $width) | |
$width = $img_size[0]; | |
if (!function_exists('imagecreatetruecolor')) | |
{ | |
echo 'GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library'; | |
return; | |
} | |
$editor = wp_get_image_editor($file_path); | |
if (is_wp_error($editor)) | |
return $editor; | |
$editor->set_quality(100); | |
$resized = $editor->resize($width, $height, $crop); | |
$dest_file = $editor->generate_filename(NULL, NULL); | |
$saved = $editor->save($dest_file); | |
if (is_wp_error($saved)) | |
return $saved; | |
$new_img_path = $dest_file; | |
$new_img_size = getimagesize($new_img_path); | |
$new_img = str_replace(basename($image_src[0]), basename($new_img_path), $image_src[0]); | |
$vt_image = array( | |
'url' => $new_img, | |
'width' => $new_img_size[0], | |
'height' => $new_img_size[1] | |
); | |
return $vt_image; | |
} | |
$vt_image = array( | |
'url' => $image_src[0], | |
'width' => $width, | |
'height' => $height | |
); | |
return $vt_image; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment