Werbung bei bestimmten Artikeln ausblenden

Um Werbung bei bestimmten Beiträgen auszublenden gibt es eine einfache Möglichkeit dies mit benutzerdefinierten Feldern zu realisieren. Das kann vor allem dann sinnvoll sein, wenn es eben nicht erlaubt ist bei bestimmten Beiträgen Werbung einzublenden, zum Beispiel bei Beiträgen die von Trigami vermittelt wurden. Das Ganze ist übrigens auch umgekehrt möglich und man kann dann nur bei bestimmten Beiträgen Werbung einblenden.

Wie schon oben erwähnt verwenden wir einfach benutzerdefinierte Felder, die man bei WordPress bei jedem Beitrag erstellen kann. Dann muss man noch eine kurze Abfrage im Design einfügen und schon gibt es eine spezielle Regelung. Wir nennen unser Feld „trigami“, um damit Beiträge von Trigami zu markieren. Als Wert wählen wir einfach true oder false, wir benötigen allerdings immer den Wert true.

benutzerdefiniertesfeld_trigami

Anschließend müssen wir jetzt nur noch den PHP Befehl, um das benutzerdefinierte Feld abzuprüfen, einfügen. Dazu verwenden wir eine einfache IF-Abfrage und falls kein Wert in dem Feld gespeichert ist, wird die Werbung eingeblendet. Jetzt müssen wir einfach noch bei jedem Trigami Artikel das benutzerdefinierte Feld belegen und schon gibt es kein Problem mehr mit der Werbung.

12 Responses to “Werbung bei bestimmten Artikeln ausblenden”

  1. nastorseriessix

    Danke schön für die ausführliche Erklärung, hatte sowas vor einiger Zeit mal gesucht aber nichts passendes gefunden. Hab dich über „http://ocean90.de/“ gefunden bzw. in deinem Artikel dort. 😉 🙂

    Noch ein Frage anbei zu der Vorgehensweise.

    Gibt es eine Möglichkeit das ganze dahin zu erweitern, das zB. die Werbung erst nach X-Tage angezeigt wird im Artikel? Also als Beispiel, der Artikel ist 3 Tage alt und dann erst soll Werbeform X dort angezeigt bzw. eingefügt werden. Kann man das auch realisieren, bzw wie überhaubt? Ne Idee ? 😐

    Antworten
  2. devno

    Hallo nastorseriessix,

    natürlich ist es möglich die Werbung erst nach einer gewissen Zeit einzublenden. Dazu musst du nur die Zeit, wenn der Post erstellt wurde mit der derzeitigen Zeit abprüfen. Mithilfe des Timestamps kannst du dann eine beliebige Zeitspanne auswählen, wenn die Werbung eingelendet werden soll.

    if(get_the_time('U')+3*24*60*60< time()){ echo '3+ Tage unterschied'; }

    Mit get_the_time(‚U‘) bekommst du den Zeitpunkt der Veröffentlichung und die Multiplikation stellt einfach 3 Tage in Sekunden dar. Mit der PHP-Funktion time() bekommst du den Zeitpunkt des jetzigen Datums. Mit Hilfe einer einfachen If-Abfrage lässt sich also ermitteln ob schon mehr als 3 Tage vergangen sind. Damit get_the_time() funktioniert muss es natürlich innerhalb der Loop sein.

    Gruß,
    devno

    Antworten
  3. nastorseriessix

    Öhm, bitte langsam wenn möglich. 😉

    Habe mit dem Programmieren nix am Hut und wüsste von daher gar nicht mal was „loop“ bedeutet. So gesehen wäre es mit einem Beispiel des kompletten Codeschnippsel für mich wesentlich einfacher das ganze dann entsprechend einzubauen. 🙂

    Wo zB. müsste ich denn besagten Code einbauen? Weil ich würde das dann schon gerne für alle Artikel so machen.

    Antworten
  4. devno

    Ich habe das ganze in meine single.php (Ansicht eines einzelnen Artikels) eingefügt, welche du unter wp-content/theme/dein_theme/single.php finden kannst. Dort musst du dann an einer gewünschten Stelle den Code mit deinem gewünschten Werbemittel einbauen.

    Wenn du zum Beispiel wie ich eine Werbung vor dem Code haben möchtest, fügst du den Code vor the_content(‚Weiterlesen…‘); ein. Damit der Webserver auch weis, dass es sich um PHP handelt musst du die PHP-Tags (< ?php, ?>) davor bzw. danach einfügen. Die Datei sollte dann ungefähr so aussehen:

    single.php

    < ?php if(get_the_time('U')+3*24*60*60< time()){?>
    google Ads Code
    < ?php}?>
    < ?php the_content('Weiterlesen...'); ?>

    Denn Ads Code musst du von Google oder welche Werbung du auch immer einbauen möchtest ersetzen.

    Gruß,
    devno

    Antworten
  5. nastorseriessix

    Danke für die Ausführung. 😀

    Werde mich gleich mal an den Einbau machen und es testen. 😉

    Allerdings handelt es sich bei mir um Layer-Ads, weswegen ich auch die Zeitangabe mit rein haben wollte. Denn sofort Layer zu nutzen wäre extrem ätzend, da die Leser sowas gar nicht gerne haben. Nach ein paar Tagen oder 1Woche sieht das schon anders aus und man kann dann was einsetzten an Layern. 🙂

    Das mit dem Benutzerdefiniertem Feld ist dann Premiere bei mir, habe sowas noch nie gemacht. Hoffentlich habe ich das richtig kapiert. Also einfach das Feld benennen „zB. Layer-ad“ und dann als Wert noch „true“ eintragen? Das wars?

    Wird das Feld bzw. dessen Funktion dann immer automatisch mit angefügt/aktiviert bei jedem neuen Artikel den ich verfasse?

    Antworten
  6. devno

    Das musst du bei jedem Beitrag einfügen, aber du könntest die Werbung auch immer einblenden lassen und wenn Layer-ad eben falsch ist, dann nicht.

    Antworten
  7. nastorseriessix

    Es sollen schon eigentlich immer dann so nach 7 Tagen nur die Layer dann eingeblendet werden. Von daher suchte ich ne Möglichkeit das alles etwas zu automatisieren.

    Antworten
  8. devno

    Das ist mit meinem Skript auch sehr einfach möglich, hier nocheinmal der Code.

    < ?php if(get_the_time('U')+7*24*60*60< time()){ ?>
    //Hier fügst du einfach deinen Code vom Layer ein
    < ?php } ?>

    Das schreibst du jetzt vor die Funktion the_content() in deiner single.php und schon wird dein Layer 7 Tage nach der Veröffentlichung angezeigt. Vollkommen automatisch!

    Bei dem anderen Code ist es nur darum gegenan, dass bei bestimmten Posts keine Werbung angezeigt werden soll.

    Gruß,
    devno

    Antworten
  9. nastorseriessix

    Wunderbar. 😀

    Dann werde ich das mal sofort local umsetzten und anschliessend auf dem online TestSpace ausgiebig austesten. 😉

    Nur wie ist das mit älteren Artikeln, die schon zB. 1 Jahr als sind, wird da das auch angefügt dann? Weil es gibt Artikel wo ich manuell den Layer-Ad Code schon eingefügt habe. Wäre dann ja ne Doppelbelegung…

    Antworten
  10. devno

    Dann würde es zu einer zweifachen Ausführung kommen, aber ich denke Layer-ads wird funktionen haben, dass der Layer nicht 2 mal angezeigt wird. Man könnte es zwar sicherlich auch mit PHP abfragen, aber der Aufwand wäre einfach zu groß.

    Antworten
  11. devno

    Ich werde das Ganze jetzt nicht Programmieren, aber ich kann dir die Vorgehensweise sagen, welche eigentlich sehr einfach ist. Bevor ein Artikel auf der Homepage ausgegeben wird durchsuchst du ihn auf den Layer-ads Code und wenn er nicht vorhanden ist, fügst du ihn einfach ein. Natürlich kannst du dann auch noch die Sperre von 7 Tagen einbauen oder irgendwelche andere Filter.

    So groß ist das Ganze nicht, aber wenn man sich noch nicht wirklich mit WordPress befasst hat, muss man erst lernen wie WordPress aufgebaut ist. Das dauert bei dem einen vielleicht ein paar Stunden und der andere wird Tage brauchen.

    Antworten

Leave a Reply