Since version 3.5 you can define constant ‘UPLOADS’ like:
define('UPLOADS','myfiles');
where ‘myfiles’ is a folder location relative to ABSPATH. If the folder does not exist, it will be automatically created.
EDIT: It will only work, if a new folder is located below website’s Document Root folder ( ABSPATH ). To put it outside of ABSPATH tree, we cannot use ‘define’ method. Prior to version 3.5, two more options were available on ‘Settings -> Media’ screen: ‘Store uploads in this folder‘ and ‘Full URL path to files‘. These are hidden now, when both options, ‘upload_path’ and ‘upload_url_path’ in wp_options table are blank ( default ). If you can use phpMyAdmin, set ‘upload_path’ to non-blank value. Any character will do. This will re-enable missing options of ‘Settings -> Media’ screen. If phpMyAdmin cannot be used, add the following code to the current theme’s functions.php file:
/* Re-enables 'upload_path' and 'upload_url_path'
on 'Settings -> Media'
*/
function fpw_populate_upload_path() {
if( is_user_logged_in() && current_user_can( 'manage_options' ) )
if ( empty( get_option( 'upload_path' ) ) )
update_option( 'upload_path', "https://wordpress.stackexchange.com/" );
}
add_action( 'admin_head', 'fpw_populate_upload_path' );
Now, you can set the path and URL of the new uploads folder, using ‘Settings -> Media’ screen. Done.