Banner auf der WP-Startseite

Kategorie: Webentwicklung

Da man sich ja weiterentwickeln will habe ich mal geschaut wie man denn auch auf der Startseite mehr Platz für Marketing bzw. Werbung schaffen kann. Ich habe mich noch nicht entschieden ob ich die Funktion dauerhaft auf Netheweb einbauen will, die Idee gefällt mir aber.

Worum es geht ist einen Werbeplatz zu schaffen innerhalb des Contents auf der Startseite eures Blogs. Was genau da rein kommt, kann man eigentlich selber entscheiden, am Ende muss es nicht einmal Werbung sein sondern kann auch z.B. nen Subscirbe Feld für einen Newsletter sein.

Da ich ausnahmsweise mal keine Lust hatte permanent in den Theme-Datein rum zu pfuschen kommt der benötigte Code einfach in die Functions.php.

Schaut euch den Code einfach mal an, viel zu erklären muss man nicht, habe den Code auch nicht selbst geschrieben sondern eher zusammen geschnipselt aus dem was ich so im Web gefunden hab.


function insert_between_posts( $post ) {
global $wp_query;

// Template checken
if ( ! is_home() )
return;

// Schleife checken
if ( $wp_query->post != $post )
return;

// Position checken
if ( 2 != $wp_query->current_post )
return;

// Banner anzeigen lassen
echo '<a href="http://1deluxe.eu" style="margin-left: 140px;"> <img src="http://1deluxe.eu/banner/468-60.gif" border="0">';
}
add_action( 'the_post', 'insert_between_posts' );


Unter Position könnt ihr einstellen hinter welchen Artikel der Banner angezeigt werden soll und ist neben dem was im echo steht auch das einzige was ihr ändern müsst.

Wünsche euch damit erstmal viel Spaß und werde mal überlegen wie ich die Funktion sinnvoll einbaue. Falls ihr gute Ideen habt würde ich mich natürlich freuen wenn ihr sie mit mir bzw. teilen würdet.

Sensei

Geschrieben von Sensei am 15. 12. 2010
Abgelegt unter: Webentwicklung
Tags: , , , ,

12 Kommentare zu “Banner auf der WP-Startseite”

  • Huhu,
    dem “echo ‘‘;” solltest du eventuell noch ‘‘ anfügen, also “echo ‘‘;” damits HTML-Valide ist :)
    ansonsten danke für den Hinweis ich werde mir das nochmal genauer ansehen.

    Ich steige auch gerade schleppend in die Template-Entwicklung und generell das WordPress-Extending (geiler Begriff ne?) ein und daher sind solche Beispiele genau das was ich benötige :)

    Danke fürs publizieren.

  • Sensei sagt:

    Danke werde es ändern sobald ich zuhause bin. War keine Absicht, das der Close-tag fehlt

  • Crazy Girl sagt:

    Wenn mich jetzt nicht alles täuscht, erreichst Du mit
    if ( !is_home() )
    das genaue Gegenteil (! verneint ja). Damit wird der Banner überall angezeigt, nur nicht auf der Startseite ;-)

    Wenn man das Ganze wirklich nur auf der Startseite will, dann sollte das eher mit folgendem Schnipsel realisiert werden:
    if ( is_home() && !is_paged() )
    Mit is_home wird die Startseite abgefragt und mit !is_paged die weiteren Seiten (Seite 2, 3 etc.) verhindert.

    Ich mache so was übrigens nie in der functions.php, sondern immer in den Template Dateien selbst. Hier würde sich die index.php anbieten. Natürlich wäre der Code dort auch etwas anders. Die functions.php macht in meinen Augen nur wirklich Sinn, wenn man etwas übergreifend im gesamten Theme haben will und so nur den einen Eintrag hat (statt in jeder entsprechenden Datei das gleiche nochmal).

  • Sensei sagt:

    @Tanja, ich hab den Code jetzt mal getestet und der Banner wird zwar auf allen Seiten angezeigt, aber mit deinem Code wird er auf der ersten Seite nicht mehr angezeigt.

    Hab leider keine Ahnung wie man das beheben könnte :D

    Das mit der functions.php ist denke ich Geschmackssache.

  • Crazy Girl sagt:

    Eigentlich kann das gar nicht sein, hast Du nicht vielleicht immer noch das ! bei is_home drin?
    Ansonsten kann ich nur noch sagen, dass diese Form der Werbeeinblendung wohl nicht für die functions.php geeignet ist ;-)

  • Sensei sagt:

    Hab eigentlich dein Snippet kopiert gehabt, hab dir mal kurz auf Twitter den Testblog geschickt, dann siehst du es denke ich leichter und wir können nochmal gucken woran es liegt.

    Bei der Functions.php verstehe ich worauf die hinaus willst, war aber für mich irgendwie die schnellste Lösung, bin halt ein fauler Mensch

  • Crazy Girl sagt:

    Sensei, mit der functions.php mag ich mich ehrlich gesagt nicht auseinander setzen in diesem Fall. Aber ich habe Dir mal kurz meinen früheren Code aus der index.php rausgesucht. Füge mal in der index.php hinter the_content(); ein:
    <?php if ( is_home() && !is_paged() ) {
    if ( ($wp_query->current_post) == 0) { ?>
    <a href="http://1deluxe.eu" style="margin-left: 140px;"> <img src="http://1deluxe.eu/banner/468-60.gif" border="0">
    <?php }
    } ?>

    Ich hoffe den Code zerfetzt es mir jetzt nicht beim Abschicken ;-)

    Mit der Zahl 0 sprichst Du übrigens den ersten Beitrag an. Soll es nach dem zweiten erscheinen, dann hier die Zahl 1 verwenden.

  • Sensei sagt:

    @Tanja ich muss zugeben du hast mich überzeugt, so schmeißt das Ding nur Fehler, werde den Artikel mal überarbeiten und auch deine bessere Alternative vorstellen.

    Danke für den Tipp und den Code hat es zum Glück nicht zerschossen.

  • Crazy Girl sagt:

    Wenn Du Hilfe brauchst, dann sag Bescheid ;-) Das Ganze kann man übrigens beliebig oft wiederholen wenn es nicht nur im ersten Artikel sein soll. Einfach den Code wieder kopieren und aus der 0 eine andere Zahl machen. Wie gesagt, ich hatte zu Anfang Adsense so eingebunden, nur war die Conversion so schlecht, dass ich es wieder rausgemacht habe. Und manchmal bin ich so schlau mir solche Codes für eventuell später mal aufzuheben (nicht immer, aber immer öfter).

    Übrigens offtopic: Ich hoffe ich schaffe es noch rechtzeitig Deine Fragen zu beantworten. Eigentlich habe ich ja Urlaub und damit sollte es nicht ganz so problematisch sein, aber die Tage kam ständig was dazwischen. Gestern Arzt und elende Knieschmerzen, heute Morgen die Aktion mit dem Content-Klauer… und jetzt werd ich mal das ein oder andere Stündchen verpassten Schlaf nach holen :-)

  • Sensei sagt:

    @Tanja das passt schon, habe Aktuell kleine Probleme den eingebundenen Banner in der Mitte zu positionieren der ist mir nach dem neuen Artikel erstmal schön wieder an die linke Seite gerutscht und ich hab keine Ahnung wieso …..

    Das mit den Fragen freut mich doch :)

    /edit: Das mit dem Banner hab ich jetzt zum Glück auch noch hinbekommen :)

  • Crazy Girl sagt:

    öhm… hat sich ja schon erledigt ;-) ich würde/hätte um den Banner Code ein <div align="center"> rum gebaut.

  • Kiwi sagt:

    Danke für den Code. Habe ich gleich mal ausprobiert – und funktioniert, natürlich :)

    Gruß Kiwi

Einen Kommentar hinterlassen

Kategorien