In WordPress Werbung auf einzelnen Seiten ausblenden
Ab und zu schreibe ich Artikel im Auftrag. Da ich für diese Beiträge Geld kassiere ist es verständlich, dass die Auftraggeber darin keine Werbung sehen wollen. Nun habe ich aber ein Amazon-Script welches automatisch nach passenden Begriffen sucht und diese mit einem Link versieht. Ebenso ist AdSense in den Artikeln, was auch nicht erwünscht ist. Wie bekommt man diese nun in einzelnen Seiten wieder raus?
Zunächst mal lagere ich all meine Skripte in kleine Dateien aus, die ich dann per PHP einfach includen kann. Das macht den Code etwas übersichtlicher. Man muss nun unterscheiden ob man den Werbecode direkt im einzelnen Post oder im Footer stehen hat. Das macht einen Unterschied in der Ansteuerung von WordPress.
AdSense steht bei mir direkt im einzelnen Post (Einzelansicht, Single-View oder wie auch immer). Um diesen Code auf einer einzelnen Seite auszublenden, suche ich mir die Post-ID raus und baue eine einfache IF-Abfrage:
<?php
global $thePostId;
$thePostId = $post->ID;
if ($thePostId != 777) {
include('adsense_singlepost.php');
} ?>
Das global-construct wird hier nicht zwingend benötigt, ist aber wichtig für den zweiten Teil.
Nun ist AdSense aus dem Beitrag raus und ich muss noch das Amazon-Skript entfernen, welches sich jedoch im Footer befindet. Um die ID des Posts auch im Footer abfragen zu können habe ich die globale Variable $thePostId erzeugt. Im Footer baut man nun eine ähnliche IF-Abfrage:
<?php
global $thePostId;
if ($thePostId != 777) {
include('amazon_script.php');
} ?>
OK, ich bin kein PHP-Held und bin mir sicher, dass man das auch eleganter lösen kann, aber so funktioniert es zumindest bei mir. Wenn jemand eine bessere Idee hat, dann her damit.
Etwas detaillierter und mit mehr Background könnt Ihr das Thema auch noch bei My Digital Life nachlesen.








Schon 2 Kommentare
11. Februar 2009
Ich habe mich schon immer gewundert, dass Du so viele Amazon-Links hast
11. Februar 2009
Hehe, ja die haben ein Eigenleben entwickelt.