Organizing uploaded media with wp_insert_post() and wp_handle_upload according to time parameter

Question

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);
0
, , Dima 2 years 2019-12-28T22:29:56-05:00 0 Answers 89 views 0

Leave an answer

Browse
Browse