diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index 5af6bf7bb5..e97918e990 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -1,7 +1,7 @@ values to override default variables with extract( $overrides, EXTR_OVERWRITE ). + * @param string $time Optional. Time formatted in 'yyyy/mm'. * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ). */ function wp_handle_upload( &$file, $overrides = false, $time = null ) { @@ -359,9 +360,10 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) { * @uses wp_unique_filename * @param array $file an array similar to that of a PHP $_FILES POST array * @param array $overrides Optional. An associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ). + * @param string $time Optional. Time formatted in 'yyyy/mm'. * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ). */ -function wp_handle_sideload( &$file, $overrides = false ) { +function wp_handle_sideload( &$file, $overrides = false, $time = null ) { // The default error handler. if (! function_exists( 'wp_handle_upload_error' ) ) { function wp_handle_upload_error( &$file, $message ) { @@ -438,7 +440,7 @@ function wp_handle_sideload( &$file, $overrides = false ) { } // A writable uploads dir will pass this test. Again, there's no point overriding this one. - if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) ) + if ( ! ( ( $uploads = wp_upload_dir( $time ) ) && false === $uploads['error'] ) ) return $upload_error_handler( $file, $uploads['error'] ); $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback ); diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index c163b260be..97aea01289 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -269,7 +269,13 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = array()) { $overrides = array('test_form'=>false); - $file = wp_handle_sideload($file_array, $overrides); + $time = current_time( 'mysql' ); + if ( $post = get_post( $post_id ) ) { + if ( substr( $post->post_date, 0, 4 ) > 0 ) + $time = $post->post_date; + } + + $file = wp_handle_sideload( $file_array, $overrides, $time ); if ( isset($file['error']) ) return new WP_Error( 'upload_error', $file['error'] );