Le redimensionnement est déjà fait pour créer les tailles grandes / moyennes / pouces, mais le problème que vous rencontrez est que l'image est trop grande pour être redimensionnée, soit en raison d'un manque de mémoire ou de temps.
Le redimensionnement n'est donc pas une option, sinon, vous n'auriez pas votre problème. Au lieu de cela, essayez de limiter les images, donc si un téléchargement de 20 Mo se produit, il est refusé avec un message indiquant qu'il doit être réduit.
Limitation basée sur la zone d'image / mégapixels:
<?php
/**
* Plugin Name: Deny Giant Image Uploads
* Description: Prevents Uploads of images greater than 3.2MP
*/
function tomjn_deny_giant_images($file){
$type = explode('/',$file['type']);
if($type[0] == 'image'){
list( $width, $height, $imagetype, $hwstring, $mime, $rgb_r_cmyk, $bit ) = getimagesize( $file['tmp_name'] );
if($width * $height > 3200728){ // I added 100,000 as sometimes there are more rows/columns than visible pixels depending on the format
$file['error'] = 'This image is too large, resize it prior to uploading, ideally below 3.2MP or 2048x1536';
}
}
return $file;
}
add_filter('wp_handle_upload_prefilter','tomjn_deny_giant_images');
Limitation basée sur la largeur ou la hauteur:
/wordpress//posts/67110/revisions
<?php
/** Plugin Name: (#67107) »kaiser« Restrict file upload */
function wpse67107_restrict_upload( $file )
{
$file_data = getimagesize( $file );
// Handle cases where we can't get any info:
if ( ! $file_data )
return $file;
list( $width, $height, $type, $hwstring, $mime, $rgb_r_cmyk, $bit ) = $file_data;
// Add conditions when to abort
if ( $width > 2048 )
$file['error'] = 'Error statement';
return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'wpse67107_restrict_upload' );
La limitation par zone permettrait de redimensionner les images hautes / minces ou larges / courtes, la limitation par les dimensions peut être plus facile à expliquer