WordPress speichert beim Upload von Dateien einige Daten in den Meta Daten zur Daten - die Metadaten. Wenn es sich um Bilder handelt und diese Dateien Exif-Daten enthalten, dann werden auch dazu einige Werte ausgelesen und die kann man nutzen. So zum Beispiel als Zusatzinformationen zum Bild, wie in einem Photoblog beispielsweise, oder aber auch um Umsetzungen auf Grund von bestimmten Werten zu realisieren.
Egal was und wie ihr das tun wollt, anbei eine kleine Funktion, die das Auslesen der Exif-Daten übernimmt. Wem das nicht ausreicht, der bedient sich einer eigenen Funktion, die wesentlich mehr Daten ausließt und in einem älteren Artikel nachzulesen ist.
Die zweite Funktion fb_simple_exif() ist für die direkte Ausgabe erstellt und nutzt die erste Funktion, die die Werte zum benutzen zurück gibt.
// grab exif data from wp attachment
function grab_exif_data_from_wp($post_ID, $debug = FALSE) {
global $id, $post;
if ( !isset($post_ID) || '' == $post_ID )
return FALSE;
$meta = wp_get_attachment_metadata($post_ID, FALSE);
$return = '';
if ( $meta['image_meta']['created_timestamp'] )
$return .= date( "d-M-Y H:i:s", $meta['image_meta']['created_timestamp'] );
if ( $meta['image_meta']['copyright'] )
$return .= $meta['image_meta']['copyright'];
if ( $meta['image_meta']['credit'] )
$return .= $meta['image_meta']['credit'];
if ( $meta['image_meta']['title'] )
$return .= $meta['image_meta']['title'];
if ( $meta['image_meta']['caption'] )
$return .= $meta['image_meta']['caption'];
if ( $meta['image_meta']['camera'] )
$return .= $meta['image_meta']['camera'];
if ( $meta['image_meta']['focal_length'] )
$return .= __( '· Brennweite:', FB_GREYFOTO_TEXTDOMAIN )
. ' ' . $meta['image_meta']['focal_length']
. __( 'mm', FB_GREYFOTO_TEXTDOMAIN );
if ( $meta['image_meta']['aperture'] )
$return .= $meta['image_meta']['aperture'];
if ( $meta['image_meta']['iso'] )
$return .= $meta['image_meta']['iso'];
if ( $meta['image_meta']['shutter_speed'] )
$return .= number_format($meta['image_meta']['shutter_speed'], 2) . ' ' . __( 'seconds', FB_GREYFOTO_TEXTDOMAIN );
if ($debug) {
ob_start();
var_dump($meta);
$return = ob_get_clean();
}
return $return;
}
function fb_simple_exif($post_ID, $debug) {
$echo = grab_exif_data_from_wp($post_ID, $debug);
if ( $echo && '' != $echo )
echo $echo;
}
Lieber Frank, eine supertolle Funktion! Zwar tief in den "Weiten" von WordPress versteckt aber ein großes Killerfeature
. Warum? Zumindest für Fotoblogger ist die Funktion sehr interessant. Liest man deinen Blog aufmerksam so stellt man schnell fest, dass mit WordPress jedes andere spezielle System (Bsp. Pixelpost) locker ersetzt werden kann. Mit wenigen Funktionen wird aus WP ein pures Fotoblog, Danke für die tolle Arbeit! Bleibt mir nur noch Dir/Euch eine schöne Weihnachtszeit zu wünschen ...
Hör mir auf Frank
Vor 2 Tagen hab ich mir noch dein Photoblog angeschaut und auch diese Metadaten gesehen, da hatte ich mich noch gefragt ob man diese irgend wie automatisch auslesen könnte.
Vielen Dank für den Snipped.
Zwar kompliziert, aber trotzdem vielen Dank für die kostzenlose Programmierung von dir.
Danke dafür! Aber hast du auch einen Tipp wie man die serverseitig umschreiben kann?
Hey Frank,
ich bin grade dabei den Code in meinem Blog einzubauen. Bei mir ist es so das ich nicht die Exif Daten von einem Bild anzeigen lassen will sondern die Exif Daten aller Bilder in der Gallery. Mir ist klar das mir dabei Werte wie Brennweite etc. verloren gehen, mir geht aus auch nur ehr darum Kammeratyp und ggf Software u. Aufnahmedatum auszulesen. Ich denke vielleicht ginge es auch wenn man nur das erste Bild der Gallery einließt und dessen Werte ausgibt. Könnte man es vielleicht sogar auf das Postthumbnail beziehen? Wenn ja, wie wird das dann verbaut bzw. wie sage ich deiner Funktion das er bitte das Postthumbnail als Quelle nehmen kann?
Vielen Dank!!!
@Nick: Du musst jedes Bild auslesen, da jedes Bild eigene Werte hat. Insofern muss also jedes Bild bei der Ausgabe genutzt werden; je Ausgabe der Daten muss das jeweilige Bild übergeben werden, also die Attachment ID nutzen und mitgeben. Wie man was wo raus bekommt, erkläre ich hier: http://bueltge.de/wordpress-attachment-metadaten-nutzen/625/ Eventuell reichen dir ja die Daten von WP, welches ja auch diverse Daten der Bilder speichert.
Tolle Funktion, danke dafür.