Guest User

Untitled

a guest
Oct 22nd, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. define( 'UPLOADS', ''.'image' );
  2.  
  3. // Allow gpx, kml, and kmz files
  4.  
  5. function my_myme_types($mime_types){
  6. $mime_types['gpx'] = 'application/gpx+xm'; //Adding gpx extension
  7. $mime_types['kml'] = 'application/vnd.google-earth.kml+xml'; //Adding kml extension
  8. $mime_types['kmz'] = 'application/vnd.google-earth.kmz'; //Adding kmz files
  9. return $mime_types;
  10. }
  11. add_filter('upload_mimes', 'my_myme_types', 1, 1);
  12.  
  13. define('ALLOW_UNFILTERED_UPLOADS', true);
  14.  
  15. // Generate folders based on postname to organize media
  16. add_filter('wp_handle_upload_prefilter', 'wpse_25894_handle_upload_prefilter');
  17. add_filter('wp_handle_upload', 'wpse_25894_handle_upload');
  18.  
  19. function wpse_25894_handle_upload_prefilter( $file )
  20. {
  21. add_filter('upload_dir', 'wpse_25894_custom_upload_dir');
  22. return $file;
  23. }
  24.  
  25. function wpse_25894_handle_upload( $fileinfo )
  26. {
  27. remove_filter('upload_dir', 'wpse_25894_custom_upload_dir');
  28. return $fileinfo;
  29. }
  30.  
  31. function wpse_25894_custom_upload_dir($path)
  32. {
  33. /*
  34. * Determines if uploading from inside a post/page/cpt - if not, default Upload folder is used
  35. */
  36.  
  37. $use_default_dir = ( isset($_REQUEST['post_id'] ) && $_REQUEST['post_id'] == 0 ) ? true : false;
  38. if( !empty( $path['error'] ) || $use_default_dir )
  39. return $path; //error or uploading not from a post/page/cpt
  40.  
  41. //Save uploads in SLUG/alias based folders
  42.  
  43. $the_post = get_post($_REQUEST['post_id']);
  44. $customdir = '/' . $the_post->post_name;
  45.  
  46. /*
  47. * Save uploads in FILETYPE based folders
  48. * when using this method, you may want to change the check for $use_default_dir
  49. *
  50. */
  51.  
  52. $extension = substr( strrchr( $_POST['name'], '.' ), 1 );
  53. switch( $extension )
  54. {
  55. case 'jpg':
  56. case 'png':
  57. case 'gif':
  58. define( 'UPLOADS', ''.'image' );
  59. $customdir = '';
  60. break;
  61.  
  62. case 'mp4':
  63. case 'm4v':
  64. define( 'UPLOADS', ''.'videos' );
  65. $customdir = '';
  66. break;
  67.  
  68. case 'txt':
  69. case 'doc':
  70. case 'pdf':
  71. define( 'UPLOADS', ''.'documents' );
  72. $customdir = '';
  73. break;
  74.  
  75. case 'gpx':
  76. case 'kml':
  77. case 'kmz':
  78. define( 'UPLOADS', ''.'map' );
  79. $customdir = '';
  80. break;
  81.  
  82. default:
  83. define( 'UPLOADS', ''.'file' );
  84. $customdir = '';
  85. break;
  86. }
  87. // end mime type upload folder method
  88.  
  89.  
  90. //$path['path'] = str_replace($path['subdir'], '', $path['path']); //remove default subdir (year/month)
  91. $path['url'] = str_replace($path['subdir'], '', $path['url']);
  92. $path['subdir'] = $customdir;
  93. $path['path'] .= $customdir;
  94. $path['url'] .= $customdir;
  95.  
  96. return $path;
  97. }
Add Comment
Please, Sign In to add comment