Как получить изображение EXIF ​​date / time и использовать его для даты / времени публикации WP

В настоящее время у меня есть следующая рабочая функция.

add_action('add_attachment', 'create_post_from_image'); function create_post_from_image($id) { if (wp_attachment_is_image($id)) { $image = get_post($id); // get image height/width for auto inserting the image later @list($width, $height) = getimagesize(get_attached_file($id)); $post = array( // Set image title as post title 'post_title' => $image->post_title, // Set post to draft for details 'post_status' => 'draft', // "Fake" WordPress insert image code 'post_content' => '<a href="'.$image->guid.'"><img class="alignnone size-full wp-image-'.$image->ID.'" src="'.$image->guid.'" alt="'.$image->post_name.'" width="'.$width.'" height="'.$height.'" /></a>' ); $postid = wp_insert_post($post); if ($postid) { // Set image as post featured image set_post_thumbnail($postid, $image->ID); // Attach image to the post wp_update_post(array( 'ID' => $id, 'post_parent' => $postid ) ); } } } 

Эта функция, по сути, создает сообщения для каждого изображения, загруженного в медиабиблиотеку, и встраивает загруженное изображение в содержимое сообщения. Затем он устанавливает для меня проект, который я должен рассмотреть и опубликовать.

Как изменить его так, чтобы для каждого загруженного изображения он получал внедренные данные EXIF ​​и записывал дату / время, когда изображение было захвачено, а затем автоматически устанавливало это как дату / время созданного WP-сообщения?

Solutions Collecting From Web of "Как получить изображение EXIF ​​date / time и использовать его для даты / времени публикации WP"

PHP имеет функцию для этой цели: exif_read_data
Я использовал этот образ для тестирования.
Попробуйте этот код для вашей цели:

 add_action( 'add_attachment', 'create_post_from_image' ); function create_post_from_image( $id ) { if ( wp_attachment_is_image( $id ) ) { $image = get_post( $id ); // Get image height/width for auto inserting the image later @list( $width, $height ) = getimagesize( get_attached_file( $id ) ); $post = array( // Set image title as post title 'post_title' => $image->post_title, // Set post to draft for details 'post_status' => 'draft', // "Fake" WordPress insert image code 'post_content' => '<a href="' . $image->guid . '"><img class="alignnone size-full wp-image-' . $image->ID . '" src="' . $image->guid . '" alt="' . $image->post_name . '" width="' . $width . '" height="' . $height . '" /></a>' ); // Take image date if ( function_exists( 'exif_read_data' ) ) { $exif = exif_read_data( $image->guid ); if ( ! empty( $exif['DateTime'] ) ) { //var_dump( $exif['DateTime'] ); $post['post_date'] = $exif['DateTime']; } } $postid = wp_insert_post( $post ); if ( $postid ) { // Set image as post featured image set_post_thumbnail( $postid, $image->ID ); // Attach image to the post wp_update_post( array( 'ID' => $id, 'post_parent' => $postid ) ); } } }