Organizing uploaded media with wp_insert_post() and wp_handle_upload according to time parameter
I’m retroactively creating a post with wp_insert_post() and attaching a featuring image to it. I need the image to go into the folder that corresponds to the post’s publishing date.
I’m using time parameter in wp_handle_upload function that supposed to move files to the directories according to the parameter value (see in the code – $upload_date – static value for now). But right now the image moves to the current year/month folder ignoring $upload_date (Ex.: Supposed to go 2007/11, goes to 2012/12).
$output_dir = $uploads['path']; new_filepath = $output_dir.'/'.$file; // INSERT POST AND GET POST ID $my_post_id = wp_insert_post($my_post); // Copy image from my folder to WP Uploads rename($filename,$new_filepath); // required for wp_handle_upload() to upload the file $upload_overrides = array( 'test_form' => FALSE ); $upload_date = '2007/11'; // Using this date for testing purposes $movefile = wp_handle_upload( $new_filepath, $upload_overrides, $upload_date ); $wp_filetype = wp_check_filetype(basename($new_filepath), null ); $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => $post_title, 'post_content' => $post_content, 'post_status' => 'inherit' ); $attach_id = wp_insert_attachment( $attachment, $new_filepath, $my_post_id ); $attach_data = wp_generate_attachment_metadata( $attach_id, $new_filepath ); wp_update_attachment_metadata( $attach_id, $attach_data ); // ADD FEATURED IMAGE TO THE POST add_post_meta($my_post_id, '_thumbnail_id', $attach_id);