Regex: Das letzte Element ersetzen

In einer weiteren Ausbaustufe, Werbung an sinnvollen Stellen hier einzubauen, habe ich mir gedacht, einen Textblock zwischen die letzten beiden Absätze eines Postings einzufügen.

Oft findet man AdSense-Blöcke gleich am Anfang (und das habe ich ja neulich ebenfalls automatisch gemacht); aber bei sehr textlastigen Artikeln liest der Besucher vermutlich zuerst einmal den Text. Bei sehr viel Text verschwindet dann das zugkräftige Ad am Anfang des Textes aus dem Blickfeld. Wohl die wenigsten erinnern sich vermutlich an die Werbung am Anfang, scrollen nach oben und klicken dann. Ich jedenfalls mache das eigentlich nie.

Also möchte ich den Besucher auch am Ende des Textes abholen. Aber wie baue ich den kleinen Klickanreiz automatisch in jeden bestehenden Artikel ein?

Regex heisst das Zauberwort.

Mittels den folgenden Code gelingt das innerhalb des Loops in WordPress sehr einfach:

             
$myContent = get_the_content_with_formatting();
$regex = '/(.*)(<p>)/s';
$replace = '<p style="margin:15px;">Hier den Adsense-Code einfügen</p><p>';
echo preg_replace($regex, '$1' . $replace, $myContent);

Zuerst wird der Artikel geholt und in der Variablen $myContent gespeichert. Die Funktion, die den Artikel mit Formatierung holt – get_the_content_with_formatting() – hatte ich im letzten Posting erklärt. Mittels preg_replace() wird über die $regex der letzte öffnende <p>-Tag gesucht und durch $replace ersetzt. Mittels echo wird der modifizierte Artikel ausgegeben.

Dieser Absatz hier ist nur dazu da, damit das kleine AdSense-Ad genau darüber ausgegeben wird. Siehst du – funktioniert. :-) Ob meine Annahme sich bestätigt (das Besucher auch am Ende eines Artikels auf Werbung klickern) wird sich zeigen. Ich bin gespannt darauf.

Schreibe einen Kommentar