Somebody knows some trick in Add new Post to:
Disable the upload of audio, video and other filetypes.
Only accept the upload of an image (jpg, png, gif).
Limit the upload of each Post to only One image (no more than one).
Thanks in advance.
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communitySomebody knows some trick in Add new Post to:
Disable the upload of audio, video and other filetypes.
Only accept the upload of an image (jpg, png, gif).
Limit the upload of each Post to only One image (no more than one).
Thanks in advance.
I was about to give up thinking that it wasn't possible or at least easy and then I stumbled onto the wp_handle_upload_prefilter
filter which gives you exactly what you asked for! Here's the 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;
}
And here are some screenshots showing how it looks in action: