WordPress CMS – Gestaltung der Home Seite-Loop Spielereien

Loop Spielereien auf der Startseite
Loop Spielereien auf der Startseite
Homeseite in WordPress soll völlig anders aussehen als alles andere. Klar man kann eine statische Seite von WP als Startseite festlegen. Aber auch diese bleibt eben nur eine Seite und ist selten speziell gestaltet. Wie funktioniert das nun bei all den vielen Themes, die eine ganz spezielle Startseite also Homepage haben.

Da sind Artikel aus der Kategorie 1, dort werden Artikel aus einer Taxonomie angezeigt und auch noch von Tags, außerdem sehe ich auch meist noch den ersten allerneuesten Artikel. All dies sind Spielereien mit dem Loop von WordPress, der ein sehr ein mächtiges Instrument ist, wenn man ihn mal ein wenig zumindest durchschaut. ;)

Außer Loop Kenntnisse brauchst du auch noch Wissen darum wie man post_thumbnails anzeigt, wie man sich diese in der functions.php genau definieren kann und Kenntnisse über die Templates in WordPress. Magst du statt Bilder Texte anzeigen, dann ist the_excerpt wichtig.

Hier in diesem Artikel zeige ich aber nur spezielle Loops an und erkläre vorher mal wieso genauso und dass es immer eine andere Lösung auch gibt sag ich nur der Vollständigkeit halber ;)

Eigenes Template für die Homepage

Ich empfehle für diese Loop Spielereien für die Startseite einfach ein Template mit dem Namen home.php. Gibt man das in den verwendeten Theme Ordner erkennt es WordPress ganz automatisch und nimmt es für die Startseite. Magst du aber eine statische Seite als Startseite haben, dann musst du das Template front-page.php nennen,

1. Loop Zeige den zuletzt geschriebenen Artikel an

Loop zeige den letzten Artikel an

Und außerdem erklär ich hier für PHP Laien was diese Loops hier bedeuten, dies mache ich nicht bei jedem Loop, weil es wäre zuviel.


<?php 
//save old query   
$temp = $wp_query;
//clear $wp_query;
$wp_query= null;
//create a new instance
$wp_query = new WP_Query();
$wp_query->query('showposts=1');
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

<!--all das was du vom ersten Artikel anzeigen magst-->

<?php endwhile; 
//clear again
$wp_query = null; 
//reset
$wp_query = $temp;?>

Simple Erklärung für nicht PHP Freaks:
Ich habe ja keine Ahnung wieviele Loops noch vor diesem einen stehen, daher ist es klug diese mal nicht „kaputt zumachen“ ;)

So sag ich WP mit obigem Code laienhaft formuliert:

Hey WordPress hier kommt was temporäres [temp=], lösche daher das Vorhandene [=null] und mache was Neues [new WP Query].
Am Ende mache das Temporäre wieder rückgängig [=null] und komm zum Ausgangspunkt WordPress [=temp], damit du nachfolgende Loops ohne „missmatch“ darstellen kannst.

Showposts gibt die Anzahl der Artikel an, die gezeigt werden sollen. Magst du also nur die Überschrifen darstellen, kannst du dies auch auf 5 oder 6 erhöhen, ganz wie es dir beliebt.

2. Loop zeige 4 Artikel aus einer bestimmten Kategorie an

Loop zeige Artikel aus einer speziellen Kategorie an

Für diesen Loop brauchst du die ID der Kategorie aus der du Artikel anzeigen magst.
Diese findest du unter:Admincenter//Dashboard=> Artikel=>Kategorie mit der Maus über den Namen der Kategorie fahren und die ID in der Statuszeile des Browsers auslesen.


<?php 
//save old query   
$temp = $wp_query;
//clear $wp_query;
$wp_query= null;
//create a new instance
$wp_query = new WP_Query();
$wp_query->query('cat=7&showposts=4&offset=1');
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

<!--all das was du vom ersten Artikel anzeigen magst-->

<?php endwhile; 
//clear again
$wp_query = null; 
//reset
$wp_query = $temp;?>

Was macht dieser Loop (Query)
Er zeigt 4 Artikel aus der Kategorie mit der ID 7 an => aber nicht den allerletzten davon, der könnte ja bei dem Loop „zeige mir den zuletzt geschriebenen Artikel“ dabei sein und Verdoppelungen sind nie schön.

Ja, es gibt da völlig andere Lösungen, ich persönlich mag die, weil sie so einfach ist ;) und außerdem kann ich dann offset erklären ;)

Magst du das nicht, dann löscht du das eben raus :-)

3. Loop zeige 4 Artikel die bestimmte Tags haben

Loop zeige Artikel, die einen bestimmten Tag haben

Aus welchen Gründen auch immer, Du hast deine Tags sehr eigenwillig benannt. ;) Leerzeichen dazwischen und mal groß, mal kleingeschrieben. WordPress kennt das und hat festgestellt, ich zeige Loops mit Tags dann gerne an, wenn Du mit anhand des Tag-Slugs sagst, was ich tun soll. ;)


<?php 
//save old query   
$temp = $wp_query;
//clear $wp_query;
$wp_query= null;
//create a new instance
$wp_query = new WP_Query();
$wp_query->query( array( 'tag_slug__in' => array('lange-fingernaegel', 'babyzimmer', 'vater-sein'), 'showposts' => 4, ));
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

<!--all das was du vom ersten Artikel anzeigen magst-->

<?php endwhile; 
//clear again
$wp_query = null; 
//reset
$wp_query = $temp;?>

Den tag-slug siehst du,wenn du dir die URL des Tags ansiehst, dazu ist es nötig Permalinks aktiviert zu haben.

4. Loop zeige 4 Artikel aus einer speziellen Taxonomie

Artikel aus einer speziellen Taxonomie

Kategorien und Tags sind auch Taxonomien, ich bringe das hier extra, weil du ja eigene Taxonomien erstellen kannst. Wie der Loop aussehen muss, damit du diese dann auch dort anzeigen kannst wo du magst findest du unterhalb.

Du hast die Taxonomie „Alltag“ erstellst und magst aus dieser 4 Artikel mit dem Term „Neuigkeiten“ anzeigen.


<?php 
//save old query   
$temp = $wp_query;
//clear $wp_query;
$wp_query= null;
//create a new instance
$wp_query = new WP_Query();
$wp_query->query( array( 'alltag' => 'neuigkeiten' , 'showposts' => 4, ));
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

<!--all das was du vom ersten Artikel anzeigen magst-->

<?php endwhile; 
//clear again
$wp_query = null; 
//reset
$wp_query = $temp;?>

Wer noch mehr mag liest sich im Codex rauf und runter. Loop Spielereien ;).

Selbstverständlich kannst du nun deine Startseite auch mit Widgets versorgen oder aber mit benutzerdefinierten Felder.

Artikelhistorie
Erstveröffentlichung 15. Oktober 2006 20:06
letztes gr. Update:16.09.11

war es hilfreich freu ich mich über’s Weitersagen und eventuell ein +1
24

24 Beiträge zu “WordPress CMS – Gestaltung der Home Seite-Loop Spielereien

  1. Kommentar Autor
    Sabrina
    Kommentar

    Hallo,

    ich habe die Spielerei 1 mal verwendet und es funktioniert soweit auch alles. Ich müsste es aber so haben, dass die aktuellsten 3 Beiträge aus Kategorie 1 angezeigt werden, aber die Beiträge die zusätzlich noch in Kategorie 2 sind ausgeschlossen werden.

    Kann mir da vielleicht jemand weiterhelfen?
    (ich nutze WP 2.1.)

  2. Kommentar Autor
    Monika
    Kommentar

    Hi Sabrina
    Loop Teil 2
    da fand ich eine Lösung, Rückmeldung erbeten, ob es klappt

    lg

  3. Kommentar Autor
    mamphp
    Kommentar

    hi
    ich will in mein wordpress so gemacht werden das erklärt mehr.

    hoffe euch alles gute

    :)

  4. Kommentar Autor
    Monika
    Kommentar

    mamph was hast Du denn von den obigen Beispielen schon probiert?
    Oder verstehst Du die Sprache schlecht?
    Wären die Erklärungen in Englisch besser für Dich?

    lg

  5. Kommentar Autor
    mamphp
    Kommentar

    ok das mein index.php

    ……….
    was soll ich ändern damit oben nur post aus category (1) und unten weiter post aus alle kategorien zeigt?

    Danke

  6. Kommentar Autor
    Monika
    Kommentar

    mamph ich habe Dir eine Email gesendet, weil hier kein Code reinkann- Sicherheit!

    lg

  7. Ping SEO Praxis Blog » Nachrichtenseiten als SEO betreiben

  8. Ping Helmeloh’s NotizBlog für Linux, Web 3.0 … » WordPress - eigener Loop

  9. Kommentar Autor
    Joachim Ott
    Kommentar

    Hallo,
    ich habe einzelne dieser loops schon mal in die Sidebar eingebaut und alles war gut. Jetzt habe ich drei hintereinander geschaltet (mit jeweils einem excerpt aus einer Kategorie). Angezeigt werden aber nicht dreimal ein excerpt, sondern dreimal drei excerpts. WP ist 2.3, URL der Startseite habe ich unter Website eingegeben. Kannst Du helfen?
    Viele Grüße, Joachim

  10. Kommentar Autor
    Monika
    Kommentar

    Hi Joachim kopiere den Code der Sidebar in ein normales Textdokument und sende es mir per Email, da kann man auch Textdokumente anhängen

    lg

  11. Kommentar Autor
    Lorenz
    Kommentar

    Habe es probiert. Funktioniert einwandfrei, aber –
    Wie kann ich die Funktion NUR auf der Startseite anzeigen lassen? if(is_home) lässt die Sidebar verschwinden.

  12. Kommentar Autor
    Fabian
    Kommentar

    Hi,

    ich zeige unter dem Post in der einzelansicht noch einmal die 20 letzten Posts.

    Das Problem ist, dass dadurch doppelter content zustande kommt. Hast du vielleicht eine Idee, wie ich den angezeigten Post aus den letzten angezeigten Posts aussortieren kann?

    Gruß Fabian

  13. Kommentar Autor
    Monika
    Kommentar

    Hi Fabian in den 1. Loop

    while.........
     $do_not_duplicate = $post->ID;
    

    in den 2. Loop dann

    while...........
    if( $post->ID == $do_not_duplicate )
    continue;
    

    lg

  14. Kommentar Autor
    Monika
    Kommentar

    Hi Stefan – das ist dann eine Frage was die nextgen Gallery da kann – das kann ich so nicht sagen- am besten im forum.wordpress-deutschland.org fragen, da sind sicher einige NextGen Gallery user.

    lg

  15. Kommentar Autor
    Stefan
    Kommentar

    geht das auch mit den neuesten bildern aus einer nextgen gallery….ich meine ich möchte gerne auf einer seite vielleicht statisch immer die neuesten bilder zeigen die eingestellt wurden…ähnlich fotocommunity.de

  16. Kommentar Autor
    Dirk
    Kommentar

    Hi ich lese aus einer Kategorie 10 Artikel aus möchte sie aber nach Klicks sortieren wie mach ich das ?

  17. Kommentar Autor
    Monika
    Kommentar

    hi Dirk da brauchst jemand,der Dir einen Counter mit dieser Sortierung macht –
    eventuell kann man ein vorhandenes -meist gelesene Artikel Plugin- umbauen.

  18. Kommentar Autor
    Sergej
    Kommentar

    Vielen Dank!
    Wie kann ich erweitern dass z.B. 4 artikel mit meisten kommentaren aus bestimmte kategorie angezeigt werden?

  19. Kommentar Autor
    Monika
    Kommentar

    hi Sergej probier das

    <?php
    $args=array(
      'cat' => 4, // Kat  ID
      'orderby' => 'comment_count',//ordne nach Anzahl der Kommentare
      'order' => 'DESC',
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => 4, // Anzahl der Artikel 
      'ignore_sticky_posts'=> 1
    );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) { ?>
      dein html 
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
    was du anzeigen magst
        <?php  endwhile; ?>
       eventuell wieder html
    <?php }
    
    wp_reset_query(); ?>
  20. Kommentar Autor
    Stephan Lendl
    Kommentar

    Bei den ersten beiden Codebeispielen fehlt scheinbar jeweils bei
    $wp_query->query(‚……);
    das Anführungszeichen am Ende!
    Zumindest hat es bei meinen Tests erst nach Hinzufügen davon funktioniert! ;-)

  21. Kommentar Autor
    Monika
    Kommentar

    ah!
    hat sich der TippfehlerTeufel eingeschlichen
    das ist kein Anführungszeichen, sondern ein Hochkoma, ich geh gleich ändern und sag recht herzlichen Dank fürs Aufmerksammachen @Stephan

  22. Kommentar Autor
    Markus
    Kommentar

    Hi Monika,

    ich finde deinen Artikel super! Gibt es auch die Möglichkeit die loop so zu gestalten das von einem Artikel alle Child-Elemente angezeigt werden?

    Vielen Dank!
    Markus

  23. Kommentar Autor
    Monika
    Kommentar

    Hi Markus
    mein Umzug hat einen Kommentar geschluckt :-)

    was sind für dich „Child-Elemente“