WPThumbs
Themes Plugins By purpose By industry Best-of lists Fix it guides
Free Plugin by Katsushi Kawamori v1.11

Exif Details

Get detailed Exif information about the media file.

Exif Details

The facts

Rating
5★ from 1
Active installs
300+
Price
Free
Last updated
16 Aug 2026
Added
May 2020
Requires WP
4.7
Tested up to
WP 7.1
Requires PHP
8.0
Downloads
8,034

Our analysis

AI-assisted

Exif Details is a WordPress plugin that provides detailed Exif information about media files. It allows users to retrieve and display data such as shooting date, camera model, and exposure settings. The plugin is particularly useful for photographers and anyone who manages media with embedded Exif data.

The plugin includes sample snippets to demonstrate how to use its filter and action hooks. These snippets can help you customize how Exif data is displayed on your media pages, such as modifying titles and captions based on Exif information.

Best for: This plugin suits photographers and media managers looking to enhance their media files with Exif data.

What it does well

  • Provides detailed Exif information for media files
  • Includes sample code snippets for customisation
  • Free to use from the WordPress.org directory

Where it falls short

  • Limited information provided about additional features
  • No user reviews or extensive usage data available

Verdict

Exif Details offers a straightforward solution for accessing and displaying Exif data in WordPress. It is beneficial for users who need to manage image metadata effectively.

From the developer

Katsushi Kawamori's own description of Exif Details, lightly tidied.

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

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:' . $exifdatas['DateTimeOriginal'];
            }
            if ( array_key_exists( 'latitude_dd', $exifdatas ) && array_key_exists( 'longtitude_dd', $exifdatas ) ) {
                $googlemap = '<a href="https://www.google.com/maps?q=' . $exifdatas['latitude_dd'] . ',' . $exifdatas['longtitude_dd'] . '">Google Map</a>';
            }
            $caption = sprintf( '%1$s %2$s %3$s %4$s %5$s %6$s', $camera, $f_number, $s_speed, $iso, $date, $googlemap );
            $caption = rtrim( $caption );
            $caption = preg_replace( '/\s(?=\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 );

Read the full description on the official page →

Tagged as

Alternatives

Other plugins for making sites fast.

WP-Optimize

Get caching and more with this powerful cache plugin. Cache, optimize images, clean your database and minify f...

Free 1M+ installs 4.8★ (2,606)
LiteSpeed Cache

All-in-one unbeatable acceleration &amp; PageSpeed improvement: caching, image/CSS/JS optimization...

Free 7M+ installs 4.8★ (2,764)
EWWW Image Optimizer

Comprehensive image optimization with WebP, AVIF, Lazy Load, and more. Optimize images automatically for Faste...

Free 1M+ installs 4.8★ (1,838)
Under Construction

Easy to use Under Construction Page &amp; Coming Soon Page. Enable Under Construction Mode in seconds &amp; sh...

Free 600k+ installs 4.8★ (1,285)
Smush

Smush

93

Compress and optimize images, enable lazy load, serve WebP &amp; AVIF, and speed up your site with a global im...

Free 1M+ installs 4.8★ (6,051)
Converter for Media

Speed up your website by using our WebP &amp; AVIF Converter. Optimize images and serve WebP and AVIF images i...

Free 500k+ installs 4.9★ (1,097)