Somebody knows some trick in Add new Post to:

  1. Disable the upload of audio, video and other filetypes.

  2. Only accept the upload of an image (jpg, png, gif).

  3. Limit the upload of each Post to only One image (no more than one).

Thanks in advance.


1 Answer 1


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:

Screenshot of WordPress Upload Dialog with code to disable multiple uploads of anything besides image files

Screenshot of WordPress Upload Dialog with code to disable multiple image uploads per post

  • Thanks Mike. Seems to work on non flash upload process, but using flash version shows: ... Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file. Commented Jan 30, 2011 at 16:17
  • @José Pablo Orozco Marín - Thank you for finding my error. I think I've found the problem and posted a newer version of the code that I do believe works for the flash uploader now. Let me know! Commented Jan 31, 2011 at 2:35
  • @José Pablo Orozco Marín - Awesome. Glad I could help. Commented Feb 5, 2011 at 17:42
  • where should I add this line - and is it compatible tu wp 3.01 and latter ?
    – user3028
    Commented Feb 9, 2011 at 10:37
  • 1
    hey mike. This answer is quite old. Is there a better approach considering new version of wordpress?
    – Sisir
    Commented May 7, 2012 at 12:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.