J'ai un problème avec l'utilisateur qui télécharge de grandes images. J'ai empêché cela avec cet extrait ...
add_filter('wp_handle_upload_prefilter', 'f711_image_size_prevent');
function f711_image_size_prevent($file) {
$size = $file['size'];
$size = $size / 1024; // Calculate down to KB
$type = $file['type'];
$is_image = strpos($type, 'image');
$limit = 5000; // Your Filesize in KB
if ( ( $size > $limit ) && ($is_image !== false) ) {
$file['error'] = 'Image files must be smaller than '.$limit.'KB';
}
return $file;
}
Cela fonctionne très bien, mais la page de téléchargement de média affiche toujours un texte disant "Taille maximale du fichier de téléchargement: 64 Mo"
Je suppose qu'il extrait cette valeur des serveurs PHP config, existe-t-il un moyen de modifier ce texte?
Ce texte provient de wp-admin/includes/media.php#L1946
Il n'y a pas de filtre disponible pour modifier le texte. Mais si vous le souhaitez, vous pouvez utiliser le filtre gettext
pour modifier le texte.
add_action('post-html-upload-ui', function () {
add_filter('gettext', 'media_upload_limit_custom_text');
});
/**
* Customize the max media size text
* @param string $text
* @return string $text
*/
function media_upload_limit_custom_text($text) {
if ($text == 'Maximum upload file size: %s.') {
return __('Image files must be smaller than 5000 KB', 'your-text-domain');
}
return $text;
}
Nous ajoutons le filtre gettext
juste avant l'affichage de notre texte!