Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define( 'UPLOADS', ''.'image' );
- // Allow gpx, kml, and kmz files
- function my_myme_types($mime_types){
- $mime_types['gpx'] = 'application/gpx+xm'; //Adding gpx extension
- $mime_types['kml'] = 'application/vnd.google-earth.kml+xml'; //Adding kml extension
- $mime_types['kmz'] = 'application/vnd.google-earth.kmz'; //Adding kmz files
- return $mime_types;
- }
- add_filter('upload_mimes', 'my_myme_types', 1, 1);
- define('ALLOW_UNFILTERED_UPLOADS', true);
- // Generate folders based on postname to organize media
- add_filter('wp_handle_upload_prefilter', 'wpse_25894_handle_upload_prefilter');
- add_filter('wp_handle_upload', 'wpse_25894_handle_upload');
- function wpse_25894_handle_upload_prefilter( $file )
- {
- add_filter('upload_dir', 'wpse_25894_custom_upload_dir');
- return $file;
- }
- function wpse_25894_handle_upload( $fileinfo )
- {
- remove_filter('upload_dir', 'wpse_25894_custom_upload_dir');
- return $fileinfo;
- }
- function wpse_25894_custom_upload_dir($path)
- {
- /*
- * Determines if uploading from inside a post/page/cpt - if not, default Upload folder is used
- */
- $use_default_dir = ( isset($_REQUEST['post_id'] ) && $_REQUEST['post_id'] == 0 ) ? true : false;
- if( !empty( $path['error'] ) || $use_default_dir )
- return $path; //error or uploading not from a post/page/cpt
- //Save uploads in SLUG/alias based folders
- $the_post = get_post($_REQUEST['post_id']);
- $customdir = '/' . $the_post->post_name;
- /*
- * Save uploads in FILETYPE based folders
- * when using this method, you may want to change the check for $use_default_dir
- *
- */
- $extension = substr( strrchr( $_POST['name'], '.' ), 1 );
- switch( $extension )
- {
- case 'jpg':
- case 'png':
- case 'gif':
- define( 'UPLOADS', ''.'image' );
- $customdir = '';
- break;
- case 'mp4':
- case 'm4v':
- define( 'UPLOADS', ''.'videos' );
- $customdir = '';
- break;
- case 'txt':
- case 'doc':
- case 'pdf':
- define( 'UPLOADS', ''.'documents' );
- $customdir = '';
- break;
- case 'gpx':
- case 'kml':
- case 'kmz':
- define( 'UPLOADS', ''.'map' );
- $customdir = '';
- break;
- default:
- define( 'UPLOADS', ''.'file' );
- $customdir = '';
- break;
- }
- // end mime type upload folder method
- //$path['path'] = str_replace($path['subdir'], '', $path['path']); //remove default subdir (year/month)
- $path['url'] = str_replace($path['subdir'], '', $path['url']);
- $path['subdir'] = $customdir;
- $path['path'] .= $customdir;
- $path['url'] .= $customdir;
- return $path;
- }
Add Comment
Please, Sign In to add comment