WordPress.org

Make WordPress Core

Ticket #18060: 18060.diff

File 18060.diff, 1.3 KB (added by kawauso, 4 years ago)
  • wp-app.php

     
    620620 
    621621                $url = $file['url']; 
    622622                $file = $file['file']; 
     623                $title = $content = $slug; 
    623624 
    624625                do_action('wp_create_file_in_uploads', $file); // replicate 
    625626 
     627                // use image exif/iptc data for title and caption defaults if possible 
     628                if ( $image_meta = @wp_read_image_metadata($file) ) { 
     629                        if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) 
     630                                $title = $image_meta['title']; 
     631                        if ( trim( $image_meta['caption'] ) ) 
     632                                $content = $image_meta['caption']; 
     633                } 
     634 
    626635                // Construct the attachment array 
    627636                $attachment = array( 
    628                         'post_title' => $slug, 
    629                         'post_content' => $slug, 
     637                        'post_title' => $title, 
     638                        'post_content' => $content, 
    630639                        'post_status' => 'attachment', 
    631640                        'post_parent' => 0, 
    632641                        'post_mime_type' => $type, 
     
    636645                // Save the data 
    637646                $postID = wp_insert_attachment($attachment, $file); 
    638647 
    639                 if (!$postID) 
     648                if ( is_wp_error( $postID ) ) { 
    640649                        $this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.')); 
     650                } else { 
     651                        wp_update_attachment_metadata( $postID, wp_generate_attachment_metadata( $postID, $file ) ); 
     652                } 
    641653 
    642654                $output = $this->get_entry($postID, 'attachment'); 
    643655