Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

there will be lot of users on my site who will be author uploading their posts. right now, they can upload as many images / videos per post as they want. i want to restrict them to upload maximum 4 images / videos per post. can anybody help me please ?

share|improve this question

3 Answers 3

Anyone wishing to use this code, be sure to include the 'posts_per_page' => -1 if you want to limit the number to more than 5 because the get_posts query on this page will only get a max of 5 because of the default paging.

see http://stackoverflow.com/questions/2134500/why-does-get-posts-return-only-5-matching-posts-when-it-should-return-9 for more information. Cheers!

share|improve this answer
    
Actually this would make the number _un_limited, not a limit greater than 5. –  GhostToast Nov 21 '13 at 21:28

I have also on solution, use same idea and hooks, only more complex with more functionalities and structured in classes for easy reused. Was an customer project and now its free: https://github.com/bueltge/Limit-Upload

share|improve this answer
    
Firstly, your Adminimize plugin is amazing, secondly, is this available in the Wordpress plugin directory? –  Christine Cooper May 14 '13 at 17:15
    
Yes, the Adminimize plugin is also available on the [wp Repo](wordpress.org/extend/plugins/adminimize/). The plugin Limit Upload is only on Github. The problem is the work with free plugin, to much for to give good support. –  bueltge May 17 '13 at 15:49

try this:

add_filter('wp_handle_upload_prefilter', 'limit_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'];
    }
  }
  if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
    if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>3)
      $file['error'] = "Sorry, you cannot upload more than four (4) image.";
  }
  return $file;
}

after you paste this in your theme's functions.php the upload limit should be 4 files total per post.

share|improve this answer
    
+1 and maybe you could attach the error to 'admin_notices'. :) –  kaiser Jun 26 '11 at 16:12
    
@Bainternet - do you have any additional information or remarks on why you need to have that code for the flash uploader? –  Josiah Nov 22 '11 at 14:38
1  
@kaiser: i build also an solution for this, like the code on top; but I don't find an hook for admin notices in media upload, inside the iframe. Only an message on upload array is possible. –  bueltge Jun 21 '12 at 13:48
    
@bueltge Ah, ok. Maybe custom js with default admin UI styles will be enough. –  kaiser Jun 25 '12 at 10:14
    
its not fine for maintenance :( i have used current an hook for the information, which mime type and how many objects is possible. see: github.com/bueltge/Limit-Upload –  bueltge Jun 28 '12 at 21:25

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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