[Plugin: Dynamic Image Resizer] Images with special characters are not resized
-
Hi,
Great plugin! It saved me a lot of MB’s!
There are two things that may be improved:
1) Images with special characters in their filenames are not resized because the url is not decoded first. I found that changing line 19 from
$filename = $matches[1].'.'.$matches[5];
into
$filename = urldecode($matches[1].'.'.$matches[5]);
fixed that problem.2) The plugin uses the character ‘c’ at the end of a filename to indicate it needs to be cropped. This didn’t work for the images I had already uploaded before I installed the plugin. Maybe you can think of a solution for this. I fixed it by deleting all the resized images WordPress had created before. Then I changed the filenames in the metadata by running the following script:
$args = array( 'numberposts' => -1, 'offset' => 0, 'category' => NULL, 'orderby' => 'post_date', 'order' => 'DESC', 'include' => NULL, 'exclude' => NULL, 'meta_key' => NULL, 'meta_value' => NULL, 'post_type' => 'attachment', 'post_mime_type' => NULL, 'post_parent' => NULL, 'post_status' => NULL ); $attachments = get_posts( $args ); foreach ($attachments as $attachment) { $meta = (get_post_meta( $attachment->ID ,'_wp_attachment_metadata')); $meta_new = $meta; $sizes = $meta[0]['sizes']; if ($sizes) foreach ($sizes as $size=>$value) { if (in_array($size,array('thumbnail', 'post-thumbnail', 'featured-image'))) { // put your images that need to be cropped here $filename = $value['file']; if (!preg_match('/(.*)(c).(jpg|png|gif)/i',$filename) ) { if (preg_match('/(.*).(jpg|png|gif)/i',$filename,$matches) ) { $newfilename = $matches[1].'c.'.$matches[2]; echo 'Found: '.$newfilename."\r"; $meta_new[0]['sizes'][$size]['file'] = $newfilename; } } } } update_post_meta($attachment->ID,'_wp_attachment_metadata',$meta_new[0]); }
Best regards,
Mila Witjeshttps://www.ads-software.com/extend/plugins/dynamic-image-resizer/
- The topic ‘[Plugin: Dynamic Image Resizer] Images with special characters are not resized’ is closed to new replies.