Make WordPress Core

Changeset 50258


Ignore:
Timestamp:
02/08/2021 11:20:56 PM (6 years ago)
Author:
antpb
Message:

Media: Allow post_date to be respected in media_handle_sideload().

Previously, date information was unable to be changed when using media_handle_sideload().

Now you can override the date for a media item using $post_data['post_date'] before using the function.

Props jamesgol, mukesh27, SergeyBiryukov, hellofromTonya, Mista-Flo.
Fixes #50972.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/media.php

    r49979 r50258  
    431431 * @since 5.3.0 The `$post_id` parameter was made optional.
    432432 *
    433  * @param array  $file_array Array that represents a `$_FILES` upload array.
    434  * @param int    $post_id    Optional. The post ID the media is associated with.
    435  * @param string $desc       Optional. Description of the side-loaded file. Default null.
    436  * @param array  $post_data  Optional. Post data to override. Default empty array.
     433 * @param string[]  $file_array Array that represents a `$_FILES` upload array.
     434 * @param int       $post_id    Optional. The post ID the media is associated with.
     435 * @param string    $desc       Optional. Description of the side-loaded file. Default null.
     436 * @param array     $post_data  Optional. Post data to override. Default empty array.
    437437 * @return int|WP_Error The ID of the attachment or a WP_Error on failure.
    438438 */
     
    440440        $overrides = array( 'test_form' => false );
    441441
    442         $time = current_time( 'mysql' );
    443         $post = get_post( $post_id );
    444 
    445         if ( $post ) {
    446                 if ( substr( $post->post_date, 0, 4 ) > 0 ) {
     442        if ( isset( $post_data['post_date'] ) && substr( $post_data['post_date'], 0, 4 ) > 0 ) {
     443                $time = $post_data['post_date'];
     444        } else {
     445                $post = get_post( $post_id );
     446                if ( $post && substr( $post->post_date, 0, 4 ) > 0 ) {
    447447                        $time = $post->post_date;
     448                } else {
     449                        $time = current_time( 'mysql' );
    448450                }
    449451        }
Note: See TracChangeset for help on using the changeset viewer.