WordPress-Artikel und Php am Beispiel Google-Adsense
Immer wieder stößt man an Grenzen, wenn man Content-Management-Systeme oder Blog-Manager benutzt. Werbung ist hier nur eins von hunderten von Beispielen, wie die Handhabbarkeit eines Management Systems, den Benutzer schnellstens an seine Grenzen stoßen lässt.
So auch bei WordPress:
Wollen wir vermeiden ständig die Google-Werbungen, irgendwohin in unseren Blog zu kopieren, dann empfiehlt es sich, den Code in eine Datei zu schreiben und an die passenden Stellen einzubauen. Mit iframes ist diese Aufgabe zu lösen, aber spätestens beim umsetzen in einen feed gibt es die ersten Probleme. Iframes sin außerdem einfach out
! Warum also nicht mit PHP?
PHP-Benutzung ist für ein Blog-Management-System natürlich selbstverständlich.
Ist es? Nein!
Obwohl WordPress auf PHP basiert, kann man nicht so ohne weiteres PHP-Code in Artikeln und Text-Widgets benutzen. Man kann hier sauberen HTML-Code, oder auch Java einfügen, aber die Basis-Programmiersprache des Systems wird einfach nicht erkannt und umgesetzt. Hinzu kommen andere Probleme, wie etwa, dass man die Text-Widgets nur Buchstaben-Weise editieren kann. Paste geht, alle anderen Funktionen eines normalen Text-Editors, fehlen aber leider (Block-Markierung, …).
„Und wie lösen wir das Problemchen?“
Gute Möglichkeiten um in Artikeln PHP-Code zu benutzen, gibt es zu Hauf. Ich persönlich bevorzuge hierfür „Exec-PHP“, weil es ohne irgendwelche Zusätze direkt den PHP-Quelltext in ausführbaren Code parst. Simpel und effektiv.
Kleines Problem bei diesem PHP-Parser: Er hat leider Schwierigkeiten mit dem PHP-eigenen INCLUDE-Befehl, der Quelltext wird zwar als PHP erkannt, aber die zu importierende PHP-Datei wird nicht ordentlich geparst. Lösung hierfür ist ein einfacher eigener Parser, der die Quelldatei öffnet und in den Quelltext einfügt, also etwa so:
$file = ‘http://example.com/example.html’; // einzufügende Datei
$implode = @implode(“”,file($file)); // Datei-Array in Zeichenkette umwandeln
echo($implode);
(PHP tags nicht vergessen!)
Mit „echo($implode)“ wird dabei die gesamte Datei als Quelltext in den Artikel eingefügt. Um was für eine Datei es sich handelt ist dabei vollkommen gleich, solange sie sich mit WordPress verträgt und nicht PHP-Code enthält, der selbstverständlich wieder nicht so einfach geparst werden kann. (PHP-Code vom Rest trennen und mit require, require_once, oder include einfügen! Gemischten Code ebenfalls trennen und direkt einfügen, oder in vollständigen php-Code umwandeln!)
Aber so ist sie Umsetzung doch wohl einfach, oder?
In die example.html, packen wir dann alles was uns Spaß macht, etwa die Google Werbung, aber auch einen Hinweis darauf, dass es sich um Werbung handelt, oder Formatierungen, und und und.
Wenn wir einen neuen Artikel schreiben, dann benutzen wir einfach die gleiche Methode um die (gleiche!!?) Werbung auch hier anzeigen zu lassen.
Selbstverständlich gibt es hierfür auch fertige Plugins, allerdings gibt es selten Plugins, die sämtliche eigenen Bedürfnisse erfüllen, sodass man letztlich nur wieder Kompromisse eingeht, ohne das gewünschte optische Ergebnis zu erzielen.
Bei einem Widget, gibt es natürlich auch die Möglichkeit PHP zu verwenden, wenn man entsprechende Plugins benutzt, bei meinem Blog, funktioniert „Exec-PHP“ nicht so ganz mit den Text-Widgets, also muss eine Alternative her. Außerdem ergibt sich wieder das bereits angesprochene Editor-Problem, den Quelltext aus einer Datei als Ganzes einzufügen funktioniert, aber eine komfortable Editierung ist nicht möglich.
Elegant ist es natürlich die PHP-Dateien, mit denen wir unsere Werbung einbauen wollen direkt als Widget in die Sidebar zu stellen.
Kurze Suche und man wird fündig, denn es gibt tatsächlich ein sehr einfaches Plugin, dass eine beliebige PHP-Datei als Widget zur Verfügung stellen kann:
Es nennt sich „Fun with Theme Widgets“ und der Name ist tatsächlich Programm!
Seine Funktion ist denkbar einfach und genauso erstaunlich. Es sucht im Theme-Ordner nach vorhandenen PHP-Dateien, die einen Namen wie „irgendetwas.widget.php“ haben und stellt diese als Widget zur Verfügung, wenn sie einen kurzen PHP-Kommentar (zwei zu editierende Zeilen) als Kopf besitzen.
Für unser Beispiel von vorhin würde das bedeuten:
Schritt 1:
Wir kopieren unsere „example.html“ in eine „example.widget.php“, was auch beim Parsen noch funktioniert, solange wir Standard-HTML-Code benutzt haben.Schritt 2:
Wir schreiben in den Quelltext der umbenannten Datei einen kleinen Kommentar:<?PHP
/*
Widget Name: Mein Google Adsense
Widget Description: Sky Scraper 160 x 600 Text & Image
*/
?>Schritt 3:
Wir laden die Datei direkt in unser Theme-Verzeichnis.
Beim aufrufen des Administrations-Menüs „Widgets“ stellen wir sofort fest, das ein Widget „Mein Google Adsense“ hinzu gekommen ist, das die Beschreibung „Sky Scraper 160 x 600 Text & Image“ trägt.
Dieses Widget können wir jetzt wie jedes andere Widget in unserem Blog behandeln, denn es macht nichts weiter, als die selbst gebaute (kopierte) Werbung in den Blog einzufügen!
Ich hoffe es hilft irgendwem, irgendwie weiter,
alles Liebe,
Thorsten
Kommentare



