WordPress: Inhalts- bzw. Werbeblöcke selbst gemacht

Ich habe gestern auf Twitter die Frage bekommen, wie ich hier auf perun.net die Hinweis- bzw. die Werbeblöcke realisiert habe. Es geht um die folgenden Blöcke:

Hinweis-Block

Diese Blöcke erscheinen auf allen Übersichtsseiten bzw. auf allen Archivseiten (Kategorien, Zeit-Archive, Tag-Archive etc.) und zwar nach den ersten drei Artikeln und manchmal auch mitten im Artikel.

Die Lösung basiert auf zwei Komponenten. Zum einen kommt ein Code-Fragment zum Zuge, den ich bereits im Artikel WordPress: Anzeigen nach dem ersten und zweiten Artikel beschrieben habe und auf der WordPress-Erweiterung AdRotate, die ich auch schon vorgestellt habe: Mit AdRotate Werbeflächen verwalten.

Anpassung im Theme

Als erstes muss den Loop der Template-Dateien, die für die Übersichten zuständig sind, erweitern. In einem einfachen WordPress-Theme wäre dies nur die index.php in den umfangreicheren Themes wären dies noch die archives.php, category.php, tag.php etc.

<?php $ad = 0; ?>
<?php // In der nächsten Zeile wird der Loop eingeleitet
if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $ad++; ?>

<?php // Loop-Komponenten für die einzelnen Beiträge ?>

<?php // In der nächsten Zeile kommt der Code für die Hinweisbox
if (($ad < 4) and function_exists('adrotate_group')) {echo adrotate_group(99);} ?>

<?php comments_template(); ?>
<?php endwhile; else: ?>
    <p>Tut mir leid, es wurde kein passender Beitrag gefunden.</p>
<?php endif; ?>

Ich habe die relevanten Stellen hervorgehoben. Vor dem Anfang des Loops setzt man den wert der Variable auf Null, direkt nach dem Anfang des Loops fängt man mit der Zählung an und nach jedem Durchlauf erhöht sich die Zahl um eins. Solange die Zahl kleiner vier bleibt wird der Block unter dem Artikel angezeigt.

In meinem Beispiel ist der Shortcode von AdRotate eingebunden. Man könnte natürlich hier auch irgendetwas anderes einbinden: einen Hinweis, AdSende-Code etc.

AdRotate: Anzeigen erstellen und in Gruppen sortieren

In AdRotate habe ich dann eine Gruppe erstellt und dieser Gruppe habe ich dann die thematisch passenden Anzeigen/Hinweise zugeordnet, die ich im Schritt vorher erstellt habe. In AdRotate kann man in den Anzeigen HTML, CSS und Javascript einbinden. Somit hat man hier eine große Auswahl an Möglichkeiten.

Durch die Einbindung von AdRotate bin ich in der Lage die gleichen Hinweise/Anzeigen nicht nur nach den ersten drei Artikeln in der Übersicht anzuzeigen, sondern sie auch mitten im Artikel einzubinden. Ich muss dafür im Artikel nur folgenden Shortcode einfügen:

[adrotate group="99"]

Ich könnte das ganze noch weiter ausbauen in dem ich mehrere thematische AdRotate-Gruppen (WordPress, Kindle etc.) erstelle und dort die passenden Anzeigen unterbringe. Im nächsten Schritt würde ich dann bestimmten Kategorien je eine Template-Datei zuweisen (z. B. category-wordpress.php) und in diesen Kategorie-Templates dann die passenden AdRotate-Gruppe einbinden. Die gleichen AdRotate-Gruppen könnte ich auch weiterhin, mit dem passenden Shortcode, direkt in die thematisch passenden Artikel einbinden.

So könnte man das System beliebig erweitern. Und wie gesagt, das ganze muss man jetzt nicht nur für Werbung einsetzen. Man kann mit diesem System prima auf Events oder sonstige Aktivitäten hinweisen.

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:

4 Kommentare

  1. Bitte um Hilfe. Wo muss ich den o.a. Code einpflegen. Versuche haben nicht zum Erfolg geführt.
    Das ist meine Index.php

    <div class="post" id="post-">
    <a class="postHeading" href="" rel="bookmark" title="Permanent Link to ">

    geschrieben am <a href="post_date)), date('m', strtotime($post->post_date)), date('d', strtotime($post->post_date))); ?>" title="Posts For "> um Uhr
    von gespeichert unter:

    0) { ?>
    <div class="mini-post" id="post-">
    <a class="postHeading" href="" rel="bookmark" title="Permanent Link to ">

    <a href="" rel="bookmark" title="Permanenter Link zu ">weiterlesen »

    geschrieben am <a href="post_date)), date('m', strtotime($post->post_date)), date('d', strtotime($post->post_date))); ?>" title="Posts For "> von
    Thema:

    <? if($post_counter % 2 == 0) { echo ""; } ?>

    Nichts gefunden
    Sorry, Sie suchen nach etwas, was es hier nicht gibt.


    Vielen Dank für Deine Mühe im Voraus.
    Viele Grüße
    sendet
    Herbert

  2. Sorry,
    Code kopieren ist wohl auch wieder misslungen. 😉
    OK, habe den Hinweis zur Maskierung gelesen. Mal sehen, wie ich das löse.
    😉

  3. Vielleicht so?

    <?php include('header.php'); ?>

    <div id="inhalt">
    <?php if (have_posts()) : ?>
    <? $post_counter = 0; ?>
    <?php while (have_posts()) : the_post(); ?>
    <? if($post_counter == 0) { ?>
    <div class="post" id="post-<?php the_ID(); ?>">
    <h2><a class="postHeading" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
    <?php the_content('Weiterlesen »'); ?>
    </div>
    <p class="postmetadata">
    geschrieben am <a href="<? echo get_day_link(date('Y', strtotime($post->post_date)), date('m', strtotime($post->post_date)), date('d', strtotime($post->post_date))); ?>" title="Posts For <? the_time('d.m.Y'); ?>"><? the_time('d.m.Y'); ?></a> um <? the_time('H:i'); ?> Uhr
    von <?php the_author() ?><br />gespeichert unter: <?php the_category(' '); ?> <?php the_tags(); ?>
    <?php edit_post_link('• bearbeiten', '', ''); ?>
    • <?php comments_popup_link('kommentieren »', '1 Kommentar »', '% Kommentare »'); ?>
    </p>
    </div>
    <? $post_counter++ ?>
    <? } else if($post_counter > 0) { ?>
    <div class="mini-post" id="post-<?php the_ID(); ?>">
    <h2><a class="postHeading" href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
    <?php the_excerpt(); ?>
    </div>
    <p style="text-align:right;"><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanenter Link zu <?php the_title(); ?>">weiterlesen »</a></p>
    <p class="postmetadata">
    geschrieben am <a href="<? echo get_day_link(date('Y', strtotime($post->post_date)), date('m', strtotime($post->post_date)), date('d', strtotime($post->post_date))); ?>" title="Posts For <? the_time('d.m.y'); ?>"><? the_time('d.m.y'); ?></a> von <?php the_author() ?>
    <br />Thema: <?php the_category(' '); ?>
    <?php edit_post_link('• bearbeiten', '', ''); ?>
    • <?php comments_popup_link('kommentieren »', '1 Kommentar »', '% Kommentare »'); ?>
    </p>
    </div>
    <? if($post_counter % 2 == 0) { echo "<hr />"; } ?>
    <? $post_counter++ ?>
    <? } ?>
    <?php endwhile; ?>
    <hr />
    <div class="navigation">
    <div class="dlft"><?php previous_posts_link('« spätere Beiträge') ?></div>
    <div class="drgt"><?php next_posts_link('frühere Beiträge »') ?></div>
    </div>
    <?php else : ?>
    <h2 class="center">Nichts gefunden</h2>
    <p class="center">Sorry, Sie suchen nach etwas, was es hier nicht gibt.</p>
    <?php include (TEMPLATEPATH . "/searchform.php"); ?>
    <?php endif; ?>
    </div>

    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Na siehste, geht doch.
    Danke für jeden Tipp im Voraus.
    Viele Grüße
    sendet
    Herbert

Kommentare sind geschlossen.