Ajouter un nouveau message à:
Désactiver le téléchargement de fichiers audio, vidéo et autres.
N'accepter que le téléchargement d'une image (jpg, png, gif).
Limitez le téléchargement de chaque publication à une seule image (pas plus d'une).
Merci d'avance.
J'étais sur le point d'abandonner en pensant que ce n'était pas possible ou du moins facile, puis je suis tombé sur le filtre wp_handle_upload_prefilter
qui vous donne exactement ce que vous avez demandé! Voici le code:
add_filter('wp_handle_upload_prefilter', 'yoursite_wp_handle_upload_prefilter');
function yoursite_wp_handle_upload_prefilter($file) {
// This bit is for the flash uploader
if ($file['type']=='application/octet-stream' && isset($file['tmp_name'])) {
$file_size = getimagesize($file['tmp_name']);
if (isset($file_size['error']) && $file_size['error']!=0) {
$file['error'] = "Unexpected Error: {$file_size['error']}";
return $file;
} else {
$file['type'] = $file_size['mime'];
}
}
list($category,$type) = explode('/',$file['type']);
if ('image'!=$category || !in_array($type,array('jpg','jpeg','gif','png'))) {
$file['error'] = "Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file.";
} else if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>0)
$file['error'] = "Sorry, you cannot upload more than one (1) image.";
}
return $file;
}
Et voici quelques captures d'écran montrant à quoi ça ressemble en action: