Das Ganze ist auch gar nicht so schwierig und sollte für jeden mit grundlegenden PHP-Kenntnissen relativ problemlos umzusetzen sein, viel ist dafür nämlich nicht nötig.
Dynamische Signaturgrafik mit den neusten WordPress Posts erstellen
Zunächst erstellen wir eine neue Datei im Hauptordner der WordPress Installation, ich habe sie z.B. dynamic-sig.php genannt, mit dem folgenden PHP-Code:
include('wp-load.php'); $posts = get_posts('numberposts=3'); foreach ($posts as $post) { $topic[] = utf8_decode($post->post_title); } $img = imagecreate(468, 60); $green = imagecolorallocate($img, 0x00, 0xFF, 0x00); $black = imagecolorallocate($img, 0x00, 0x00, 0x00); imagestring($img, 3, 15, 5, 'Neu auf Badango.eu:', $black); imagestring($img, 2, 15, 20, $topic[0], $black); imagestring($img, 2, 15, 32, $topic[1], $black); imagestring($img, 2, 15, 44, $topic[2], $black); imagecolortransparent($img, $green); header("Content-type: image/png"); imagepng($img);
Hier wird zunächst die Datei wp-load.php included, damit wir auf die Core-Funktionen von WordPress zugreifen können (und somit die Posts nicht manuell aus der DB abfragen müssen), anschließend können wir ganz einfach mit Hilfe der Funktion get_posts() die letzten Beiträge in unserem Blog abfragen, ich habe hier mal nur die letzten 3 genommen, da die ganz gut auf das übliche Banner-Format von 468×60 passen, wenn ihr ein größeres Bild erstellen wollt, dann könnt ihr da natürlich ohne weiteres auch mehr Posts abfragen, dafür einfach nur die 3 durch eine andere Zahl ersetzen.
Als nächstes wird via imagecreate() ein neues Bild mit einer Größe von 468 x 60 Pixeln erstellt, die Farben festgelegt (wobei hier nur $black wichtig ist, da der Hintergrund ja transparent sein soll) und zuletzt wird das Bild mit den Texten versehen, hier einmal die Überschrift „Neu auf Badango.eu:“ und darunter die Titel der letzten Beiträge. Die Zahlen in imagestring() stehen dabei für die Schriftgröße (1-5 sind dabei vorgegebene Größen), den Abstand vom linken Rand (hier 15px) sowie den Abstand zum oberen Rand. Zuletzt wird der Hintergrund noch transparent gemacht, der Header für den passenden Content-Type gesetzt (Achtung: Davor darf nichts anderes ausgegeben werden!) und schließlich das Bild ausgegeben.
Falls ihr lieber einen farbigen Hintergrund haben möchtet, dann lasst einfach diese Zeile weg:
imagecolortransparent($img, $green);
Die erste oben eingestellte Farbe (in diesem Beispiel $green, also Grün) würde dann als Hintergrundfarbe genutzt.
Wenn wir die Datei nun aufrufen, dann sollte zwar schon das gewünschte Bild angezeigt werden, doch hat die Datei ja immer noch die Endung .php – und kann damit in den meisten Forensystemen nicht als Grafik eingefügt werden, daher müssen wir nun auch noch eine Kleinigkeit in der .htaccess Datei einfügen um dieses Problem zu umgehen, dafür benutzen wir einfach die standardmäßige .htaccess von WordPress und fügen dort folgende Zeilen hinzu:
# Dynamische Singnatur von .png auf .php umschreiben RewriteRule ^dynamic-sig\.png$ /dynamic-sig.php [NC,L]
Und zwar so, dass es am Ende folgendermaßen aussieht:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Dynamische Singnatur von .png auf .php umschreiben RewriteRule ^dynamic-sig\.png$ /dynamic-sig.php [NC,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Nun können wir unsere Signatur wie eine gewöhnliche PNG-Datei aufrufen / einbinden, das Ergebnis sieht in diesem Fall zum Beispiel so aus: