Kamerainformationen als Metadaten beim Hochladen von Bildern speichern?

Ich versuche, WordPress automatisch die “Credit” -Metadaten zu speichern, die in Bildern gespeichert sind, die ich hochlade. Ich weiß, dass dies als ein benutzerdefiniertes Post-Meta-Feld mit update_post_meta() werden update_post_meta() .

Die “Kredit” -Informationen werden von wp_read_image_metadata() gesammelt, aber media_handle_upload() verwendet sie nicht. Es verwendet nur die Informationen “Titel” und “Titel”, die aus dem Bild für post_content bzw. post_title wurden.

Ich habe mehrere Beispiele für das Hinzufügen von Metadatenfeldern für benutzerdefinierte Anhänge nach dem Hochladen beim Bearbeiten des Bilds gefunden. Da WP diese Informationen jedoch bereits aus den Metadaten des Bilds erfasst, möchte ich eine Möglichkeit finden, sie als Bild zu speichern ist hochgeladen.

Ich bin mir nicht media_handle_upload() , welche Schritte zu ergreifen in media_handle_upload() (es scheint nicht ein Haken), so dass ich update_post_meta aufrufen update_post_meta , um die “Kredit” update_post_meta für den Anhang zu speichern.

Solutions Collecting From Web of "Kamerainformationen als Metadaten beim Hochladen von Bildern speichern?"

Sie können wp_generate_attachment_metadata :

Diese function generiert Metadaten für einen Bildanhang. Es erstellt auch eine Miniaturansicht und andere Zwischengrößen des Bildanhangs basierend auf den Größen, die auf dem Settings_Media_Screen definiert sind.

Das zweite Argument des Filters ist die Anhangs-ID. Es sollte also kein Problem sein, das Post-Meta hinzuzufügen:

 add_filter( 'wp_generate_attachment_metadata', 'manipulate_metadata_wpse_91177', 10, 2 ); function manipulate_metadata_wpse_91177( $metadata, $attachment_id ) { // var_dump( $metadata['image_meta'] ); // Credit is inside $metadata['image_meta']['credit'] return $metadata; } 

$metadata['image_meta'] den Inhalt von $metadata['image_meta'] mit FirePHP überprüfen, sind dies die Ergebnisse:

 aperture: 4 camera: "DMC-FZ100" caption: "" copyright: "" created_timestamp: 1352136868 credit: "" focal_length: "9.2" iso: "100" shutter_speed: "0.003125" title: "Double Dip" 

[Aktualisieren]
Vollständiger Test zum Hinzufügen einer benutzerdefinierten Spalte im Medienbibliotheksbildschirm ( /wp-admin/upload.php ) zum Anzeigen der Post-Meta-Informationen:

 add_filter( 'wp_generate_attachment_metadata', 'manipulate_metadata_wpse_91177', 10, 2 ); add_filter( 'manage_upload_columns', 'camera_info_column_wpse_91177' ); add_action( 'manage_media_custom_column', 'camera_info_display_wpse_91177', 10, 2 ); function manipulate_metadata_wpse_91177( $metadata, $attachment_id ) { update_post_meta( $attachment_id, 'photo_title', $metadata['image_meta']['title'] ); update_post_meta( $attachment_id, 'photo_camera', $metadata['image_meta']['camera'] ); return $metadata; } function camera_info_column_wpse_91177( $columns ) { $columns['cam_info'] = 'Camera Info'; return $columns; } function camera_info_display_wpse_91177( $column_name, $post_id ) { if( 'cam_info' != $column_name || !wp_attachment_is_image( $post_id ) ) return; $title = get_post_meta( $post_id, 'photo_title', true ); $camera = get_post_meta( $post_id, 'photo_camera', true ); $echo_title = $title ? 'Title: ' . $title . '
' : ''; $echo_camera = $camera ? 'Camera: ' . $camera : ''; echo $echo_title . $echo_camera; }

Kamera Info

Etwas verwandte Fragen und Antworten: Erstellen Sie eine neue Kategorie beim Speichern basierend auf Post-Informationen