WordPress: Anzeigen nach dem ersten, zweiten und dem dritten Artikel in der Übersicht einblenden

Hier die Antwort auf die Frage eines Lesers, wie ich hier auf perun.net auf der Start- und den Übersichtsseiten nach dem ersten, dem zweiten und dem dritten Artikel die einzelnen Werbeblöcke ausgeben lasse.

Anzeigen nach dem ersten, zweiten und den dritten Artikel in der Übersicht von WordPress

Zuerst schaust du in deinem WordPress-Theme wo überall der Loop für die einzelnen Übersichtsseiten definiert wird. In ganz einfachen Themes ist dies nur in der index.php und in den anderen Themes wären dies noch die category.php und die tag.php usw.

Der Aufbau des Loops kann von Theme zu Theme erheblich abweichen, aber hier ein recht verbreitetes Beispiel:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); /* Loop startet */ ?>
[...]
<?php comments_template(); /* Kommentare */ ?>
<?php endwhile; else: ?>
    <p>Tut mir leid, es wurde kein passender Beitrag gefunden.</p>
<?php endif; /* Loop-Ende */ ?>

Nun geht es darum vor dem Loop einen Zähler zu initiieren und im zweiten Schritt mit dem Zählen zu beginnen:

<?php $anzeige = 0; /* Zähler auf Null setzen */ ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); /* Loop startet */ ?>
<?php $anzeige++; /* Zähler fängt an zu zählen */ ?>
[...]

… und nun wird im dritten Schritt die Anzeige ausgegeben:

    <?php if ($anzeige < 4) {echo "Banner-Code"} ?>
<?php comments_template(); ?>
<?php endwhile; else: ?>

Will man anstatt drei nur zwei Anzeigenblöcke einbinden dann steht hier anstatt $anzeige < 4 dann $anzeige < 3 und bei einem Anzeigenblock $anzeige < 2.

Möchte man etwas Abwechslung in den Anzeigen hinbekommen, dann kann man auf mehreren Wegen eingreifen. Zum einen könnte man if-Statements – zum Beispiel: if ($ad == 1) – den Zähler abfragen und entsprechenden Banner-Code ausgeben lassen oder man könnte auf so Plugins wie zum Beispiel AdRotate ausweichen:

<?php $anzeige = 0; ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $anzeige++; ?>
[...]
    <?php if (($anzeige < 4) and function_exists('adrotate_group')) {echo adrotate_group(xy);} ?>
<?php comments_template(); ?>
<?php endwhile; else: ?>

Dieses Code-Beispiel hat bereits die Abfrage eingebaut ob das AdRotate aktiv ist. Wenn ja, dann soll die Anzeigengruppe mit der Nummer xy ausgegeben wird. Wobei das xy für die ID der jeweiligen Anzeigengruppe in AdRotate steht, die man im Backend ablesen kann.

Soweit alles klar? Gibt es dazu noch Fragen?

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

3 Kommentare

  1. Ist ja n’ Ding. So habe ich meine Werbeblöcke auch hart reingeschrieben.
    Allerdings noch mit dem Zusatz, dass sich zwei unterschiedliche Werbeblöcke abwechseln.

  2. Idealerweise hält man derlei Logik aus dem Theme heraus; das gehört separiert in ein Plugin.

    Hier ein sehr einfaches Beispiel, mit dem man an beliebiger Stelle in beliebigen Loops den Inhalt eines – ja schon wieder! – beliebigen Widgets ausgeben kann. 🙂

Kommentare sind geschlossen.