[WordPress] 外掛分享: Exif Details

首頁外掛目錄 › Exif Details
WordPress 外掛 Exif Details 的封面圖片
300+
安裝啟用
★★★★★
5/5 分(1 則評價)
3 天前
最後更新
問題解決
WordPress 4.7+ PHP 8.0+ v1.11 上架:2020-05-04

內容簡介

Exif Details 外掛可以提取媒體檔案的詳細 Exif 資訊,幫助使用者更好地管理和展示媒體內容,特別是照片的拍攝細節。

【主要功能】
• 提取媒體檔案的 Exif 資訊
• 支援 GPS 資料顯示
• 整合 Exif Caption 外掛使用
• 自訂顯示拍攝日期和時間
• 自動將 Exif 資訊加入媒體標題和說明

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.11) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「Exif Details」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

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:' . $exifdatas['DateTimeOriginal'];
}
if ( array_key_exists( 'latitude_dd', $exifdatas ) && array_key_exists( 'longtitude_dd', $exifdatas ) ) {
$googlemap = 'Google Map';
}
$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 );

延伸相關外掛

文章
Filter
Apply Filters
Mastodon