About this plugin
Get detailed Exif information about the media file.
Data Selection
- FILE
- EXIF
- GPS
Sibling plugin
- Can use the tags generated by this plugin in the following plugin.
- Exif Caption.
Special Thanks! Test data provider
- sysbird
Sample using snippet 1 & 3
Sample of how to use the filter hook and action hook
- Sample snippet 1
/** ================================================== * Sample snippet 1 * * The original filter hook('exif_details_data'), * which changes the display when retrieving an Exif and storing it in metadata. * The following changes the display of the shooting date and time. * * @param array $exifdatas exifdatas.
* @param int $id id. */ function exif_details_change( $exifdatas, $id ) { if ( array_key_exists( 'DateTimeOriginal', $exifdatas ) ) { $shooting_date = str_replace( ':', '-', substr( $exifdatas['DateTimeOriginal'], 0, 10 ) ); $shooting_time = substr( $exifdatas['DateTimeOriginal'], 10 ); $exifdatas['DateTimeOriginal'] = $shooting_date. $shooting_time; } return $exifdatas; } add_filter( 'exif_details_data', 'exif_details_change', 10, 2 );
- Sample snippet 2
/** ================================================== * Sample snippet 2 * * Retrieve the post metadata and add the date and time of the shooting to the title of the media page. * Execute the original action hook('exif_details_update') in the function. * * @param array $title title.
* @param int $id id. */ function media_title( $title, $id ) { $datetime = null; if ( is_attachment() ) { do_action( 'exif_details_update', $id ); $exifdatas = get_post_meta( $id, '_exif_details', true ); if (! empty( $exifdatas ) && array_key_exists( 'DateTimeOriginal', $exifdatas ) ) { $datetime = ' Date:'.
$exifdatas['DateTimeOriginal']; } } return $title. $datetime; } add_filter( 'the_title', 'media_title', 10, 2 );
- Sample snippet 3
/** ================================================== * Sample snippet 3 * * When adding new media, insert the processed data into the caption. * Use the original action hook ('exif_details_update') with function. * * @param array $metadata metadata.
* @param int $id id. */ function media_caption( $metadata, $id ) { $mime_type = get_post_mime_type( $id ); if ( in_array( $mime_type, array( 'image/jpeg', 'image/tiff' ) ) ) { do_action( 'exif_details_update', $id ); $exifdatas = get_post_meta( $id, '_exif_details', true ); if (! empty( $exifdatas ) ) { $camera = null; $f_number = null; $s_speed = null; $iso = null; $date = null; $googlemap = null; if ( array_key_exists( 'Model', $exifdatas ) ) { $camera = 'Camera:'.
$exifdatas['Model']; } if ( array_key_exists( 'ApertureFNumber', $exifdatas ) ) { $f_number = 'F-number:'. $exifdatas['ApertureFNumber']; } if ( array_key_exists( 'ExposureTime', $exifdatas ) ) { $s_speed = 'Shutter speed:'. $exifdatas['ExposureTime']; } if ( array_key_exists( 'ISOSpeedRatings', $exifdatas ) ) { $isodata = json_decode( $exifdatas['ISOSpeedRatings'] ); if ( is_array( $isodata ) ) { $iso = 'ISO:'.
$isodata[0]; } else { $iso = 'ISO:'. $isodata; } } if ( array_key_exists( 'DateTimeOriginal', $exifdatas ) ) { $date = 'Date:'. q='.
$exifdatas['latitude_dd']. ','. $exifdatas['longtitude_dd'].
=\s)/', '', $caption ); $media_post = array( 'ID' => $id, 'post_excerpt' => $caption, ); wp_update_post( $media_post ); } } return $metadata; } add_filter( 'wp_generate_attachment_metadata', 'media_caption', 10, 2 );