I use [a function][1] in my theme that prevents upload of big size image files (thanks to @fischi), but I want to apply it **strictly** to .jpg/.jpeg files only, because it prevents to upload .pdf files too. How to adapt this function? add_filter('wp_handle_upload_prefilter', 'f711_image_size_prevent'); function f711_image_size_prevent($file) { // get filesize of upload $size = $file['size']; $size = $size / 1024; // Calculate down to KB // get imagetype of upload $type = $file['type']; $is_image = strpos($type, 'image'); // set sizelimit $limit = 700; // Your Filesize in KB // set imagelimit $imagelimit = 7; // set allowed imagetype $imagetype = 'image/jpeg'; // query how many images the current user already uploaded global $current_user; $args = array( 'orderby' => 'post_date', 'order' => 'DESC', 'numberposts' => -1, 'post_type' => 'attachment', 'author' => $current_user->ID, ); $attachmentsbyuser = get_posts( $args ); if ( ( $size > $limit ) && ($is_image !== false) ) { // check if the image is small enough $file['error'] = 'Image files must be smaller than '.$limit.'KB'; } elseif ( $type != $imagetype ) { // check if image type is allowed $file['error'] = 'Image must be ' . $imagetype . '.'; } elseif ( count( $attachmentsbyuser ) >= $imagelimit ) { // check if the user has exceeded the image limit $file['error'] = 'Image limit of ' . $imagelimit . ' is exceeded for this user.'; } return $file; } **UPDATE** This is the improved code (not tested yet), thanks to @nikhil-sheth: add_filter('wp_handle_upload_prefilter', 'f711_image_size_prevent'); function f711_image_size_prevent($file) { // get imagetype of upload $type = $file['type']; $is_image = strpos($type, 'image'); // set allowed imagetype $imagetype = 'image/jpeg'; if ( $type == $imagetype ) { // get filesize of upload $size = $file['size']; $size = $size / 1024; // Calculate down to KB // set sizelimit $limit = 700; // Your Filesize in KB // set imagelimit $imagelimit = 7; // query how many images the current user already uploaded global $current_user; $args = array( 'orderby' => 'post_date', 'order' => 'DESC', 'numberposts' => -1, 'post_type' => 'attachment', 'author' => $current_user->ID, ); $attachmentsbyuser = get_posts( $args ); if ( ( $size > $limit ) && ($is_image !== false) ) { // check if the image is small enough $file['error'] = 'Image files must be smaller than '.$limit.'KB'; } elseif ( count( $attachmentsbyuser ) >= $imagelimit ) { // check if the user has exceeded the image limit $file['error'] = 'Image limit of ' . $imagelimit . ' is exceeded for this user.'; } return $file; } else { return $file; } } [1]: https://wordpress.stackexchange.com/a/133527/25187