Bilder in WordPress mit Caption einfügen

Ich habe demletzt ein paar Skripte geschrieben, um die .VGA/.CP-Dateien von BMP, EM und BMH automatisch umzuwandeln. In erster Linie ging es mir darum, die Konverter zu testen, dabei wird die Konvertierung VGA->BMP->VGA->BMP gemacht und die zwei BMPs (nach einer initialen manuellen Inaugenscheinnahme) verglichen – sind sie identisch, ist die Konvertierung okay, ansonsten gibt es bei einem der Schritte wohl Probleme. Das hat mir dann auch ermöglicht, ein paar Seiten mit Übersichten über alle Grafikdateien der jeweiligen Spiele und Versionen zu machen. Der besseren Unterscheidbarkeit habe ich die Dateien vorher umbenannt, also zum Beispiel in bmp-de-1.03-0.vga.bmp. Nach dem Hochladen wurde dann von WordPress der Titel gesetzt (Dateiname ohne Bild-Endung), nicht aber die Caption, die musste ich händisch setzen. Das ist natürlich nervig, die Caption ist aber wichtig, weil die in der Gallerieansicht unter den Bildern erscheint. So was mache ich dann mal zwischenrein, auch zwei und drei Mal, aber auf Dauer ist das ja nichts. Also hab ich geschaut, wie ich WordPress die Caption vermitteln kann.

Erstmal habe ich mich dazu hab entschlossen, JPG-Dateien hochzuladen (mogrify -format jpg *.bmp reicht ja zur Konvertierung), die sind natürlich viel kleiner als die Bitmaps, die waren aber halt eh da. In den JPGs kann man dann auch schonmal den Titel setzen und eben auch die Caption, ein Script, dass das mit exiftools macht, hab ich mir schnell zusammengeschustert, hier am Beispiel von BMP 2.0 auf Französisch:


#!/bin/bash

TARGET="bmp-fr-2.0"

for file in *.jpg;
do
name=`echo ${file} | sed -e 's/.jpg//'`
exiftool -IPTC:Headline="${TARGET}-${name}" -IPTC:Caption-Abstract="${name}" ${file}
cp ${file} ${TARGET}-${name}.jpg
done

Aus 0.vga wird so bmp-fr-2.0-0.vga.jpg, bei den Metadaten stehen dann als Headline der Dateiname und als Caption-Abstract der Name der Datei ohne Endung. Beim Hochladen wird das dann aber von WordPress in das Feld “Description” übernommen – bleh, das Feld Cpation gibts aber doch auch, das bleibt allerdings leer. Nach einiger vergeblicher Bastelei hab ich dann auf dieser Seite die Lösung gefunden und mir einfach ein Plugin geschrieben:


/**
Plugin Name: FreeBMP Captioner
Description: Fix up WordPress to set captions properly from image meta data (inspired by http://tinyurl.com/ph9xu8r).
Author: Roland Kübert
Author URI: http://sourceforge.net/projects/freebmp/
**/
function adjust_attachment($id) {
$attachment = & get_post( $id, ARRAY_A );
if ( !empty( $attachment ) ) {
$attachment['post_excerpt'] = $attachment['post_content'];
$attachment['post_content'] = '';
wp_update_post($attachment);
}
}
add_action( 'add_attachment', 'adjust_attachment' );
?>

Bei Hinzufügen eines Attachments wird also einfach der Inhalt des “post_content”-Feldes (mit dem Label “Description”) nach “post_excerpt” verschoben (Feld mit dem Label “Caption”). Jetzt ist quasi der ganze Prozess automatisiert, weder Caption noch Titel muss ich jetzt ja überhaupt anfassen. Für mein privates Blog sollte ich mir das auch mal überlegen, macht ja eigentlich eh mehr Sinn die Captions in den JPG-Dateien zu schreiben als sie nur exklusiv in WordPress zu haben.

This entry was posted in BMH, BMP, EM, General information, Graphics, Web and tagged , , , , , . Bookmark the permalink.

Leave a Reply