WordPress: so zeigst du unterschiedlich viele Artikel an

3 Artikel auf der Startseite, 10 bei den Suchergebnissen und 15 auf den Kategorie-Seiten? Kein Problem fĂŒr WordPress!
In diesem Tutorial zeige ich dir, wie du die Anzahl der angezeigten BeitrĂ€ge in deinem Blog beeinflussen kannst. Und zwar fĂŒr jede Seite ganz individuell. 🙂

Die Basis-Einstellung

In den Einstellungen unter dem Punkt „Lesen“ findet sich die Option „Blogseiten zeigen maximal x BeitrĂ€ge“. HierĂŒber legst du fest, wie viele Artikel pro Seite ausgegeben werden.

WordPress: unterschiedlich viele Artikel anzeigen

Diese Funktion ist allerdings ziemlich rudimentĂ€r, wirkt sie sich doch auf alle Seiten deines Blogs gleichermaßen auf: auf die Startseite, die Kategorie-Seiten, die Tag-Archive, … auch wenn du da eigentlich unterschiedlich viele BeitrĂ€ge auflisten möchtest.

Warum es sinnvoll ist, unterschiedlich viele BeitrÀge anzuzeigen

Nehmen wir mal ein Beispiel: auf deiner Startseite möchtest du den kompletten Artikeltext anzeigen. Dadurch können deine Leser bequem die neuesten BeitrĂ€ge lesen, ohne erst noch ein weiteres Mal klicken und den Artikel umstĂ€ndlich aufrufen zu mĂŒssen.

Allerdings wird die Seite dadurch sehr schnell sehr lang und diese LĂ€nge wirkt sich natĂŒrlich auch auf die Ladezeit aus.
Daher möchtest du dort nur die letzten 3 Artikel ausgeben.

Auf den Kategorieseiten nutzt du aber lediglich kleine Thumbnails mitsamt der ArtikelĂŒberschrift. Hier können also ruhig mehr Artikel angezeigt werden, damit man auf einen Blick möglichst alle BeitrĂ€ge sieht – ein Pluspunkt in Sachen Übersichtlichkeit.

Das ist in WordPress ganz einfach möglich! 🙂

Und wie geht’s? – Pimp your functions.php!

Öffne die Datei functions.php deines Themes. Diese Datei ist quasi das HerzstĂŒck, in dem du viele tolle Features einbauen kannst. 😉

Es wird jetzt ein klitzekleines Bisschen technisch, aber ich erklÀre dir den Code und gebe dir den Codeschnipsel an die Hand, den du einfach ans Ende deiner functions.php kopieren kannst.

Wir schreiben uns jetzt eine kleine Funktion, die wir mal ganz kreativ artikelanzahl nennen. Mit ihrer Hilfe wollen wir die sogenannte Query beeinflussen – das ist das Ding, was bestimmt, welche und wie viele Posts ausgegeben werden.

Unser GrundgerĂŒst sieht so aus:

function artikelanzahl( $query ) {
}

add_action( 'pre_get_posts', 'artikelanzahl', 1 );

In den ersten beiden Zeilen bauen wir das GrundgerĂŒst unserer Funktion.
Über add_action sagen wir WordPress anschließend, dass etwas getan werden soll: in dem Falle soll nĂ€mlich unsere Funktion artikelanzahl ausgefĂŒhrt werden, die sich via pre_get_posts einklinken soll. Über diesen sogenannten Hook pre_get_posts kann man nĂ€mlich beeinflussen, was fĂŒr BeitrĂ€ge ausgegeben werden sollen.

function artikelanzahl( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;

if ( is_home() ) {
// 3 BeitrÀge auf der Startseite
$query->set( 'posts_per_page', 3 );
return;
}

}
add_action( 'pre_get_posts', 'artikelanzahl', 1 );

Die ersten drei Zeilen kannst du hier ignorieren, wichtig ist der Teil ab if (is_home() ):
Wir prĂŒfen, ob es sich um die Startseite handelt, und wenn ja, sollen 3 BeitrĂ€ge ausgegeben werden. Auf allen anderen Seiten greift der Standard, den du im Backend eingestellt hast.

Neben der Startseite kannst du natĂŒrlich auch andere Bereiche definieren, beispielsweise:

  • is_category () – Kategorien
  • is_search () – Suchergebnisse
  • is_tag() – Schlagwort-Archiv

Die komplette Übersicht ĂŒber diese sogenannten Conditional Tags findest du im WordPress-Codex.

Wie gesagt, kopiere dir den Code und fĂŒge ihn am Ende deiner functions.php ein.

Fazit

Mit Hilfe von pre_get_posts und Conditional Tags kannst du ganz genau steuern, wie viele BeitrĂ€ge auf den unterschiedlichen Seiten deines Blogs angezeigt werden sollen. Damit optimierst du die Ladezeit deines Blogs und verbesserst die Übersichtlichkeit fĂŒr deine Leser.

Wie viele BeitrÀge listest du auf welcher Seite auf?

14 Kommentare zu „WordPress: so zeigst du unterschiedlich viele Artikel an“

  1. Liebe Anne,

    vielen Dank fĂŒr die Codeschnipsel!

    Ich freue mich immer, mehr darĂŒber zu erfahren, denn wie gut ein Template auch sein mag, so findet man selten eines, das alle WĂŒnsche berĂŒcksichtigt. Zumal man auch erst im Laufe des Bloggerdaseins lernt, was einem wichtig ist.

    Darf ich Dir eine Frage stellen: Ist es kompliziert, die Archivseite so darzustellen, dass nur die Bilder mit der Überschrift des Beitrags dargestellt werden?

    Vielen Dank und liebe GrĂŒĂŸe,
    Heike

  2. An sich ein supertolles Thema, allerdings bin ich kein Fan von Magazin-Layouts…irgendwie wirken die zwar sehr sehr ĂŒbersichtlich, aber das wĂŒrde bei mir alles so nicht passen 😀
    Naja, ganz ehrlich muss ich sagen, dass dort hauptsÀchlich Fashion Blogger anwesend waren! Ein Teil Beauty Blogger, ein bisschen Fotografie und dazwischen ich xD Ich fand es trotzdem gelungen, es ist ja auch relativ schwer, andere Sponsoren zu bekommen, als aus der Beauty Branche /:
    Ob ich zum BTK komme, weiß ich noch nicht /: Ich trete im August eine neue Lehrstelle an und ich habe noch gar-keine Ahnung, wie das dann mit den freien Tagen lĂ€uft – Wenn es nach mir geht, bin ich auf jeden Fall dabei (: Wird dann wohl eher spontan entschieden, aber auf jeden Fall auf dem Blog verkĂŒndet, höhö 😀
    Liebe GrĂŒĂŸe <3

  3. Hallo,
    guter Beitrag, jedoch bin ich offensichtlich nicht in der Lage das umzusetzen. Hilfe! 🙂

    Ich versuche nun seit 2 Tagen die Anzahl der dargestellten Artikel in einer bestimmten Kategorie zu Ă€ndern ohne die Pagination zu zerstören. Unter anderem bin ich auf diese Lösung hier gestoßen, funktioniert hat bisher aber keine…ich verzweifle langsam.

    Ich habe unter die if-Bedingung eine echo eingefĂŒgt um zu sehen ob ĂŒberhaupt was passiert und das funktioniert auch. Dadurch habe ich festgestellt, dass nur die Zeile
    „$query->set(‚posts_per_page‘, 1);“
    keinen Effekt hat. Nur warum?
    Entweder seh ich den Wald vor lauter BĂ€umen nicht mehr, oder mir ist was auf den Kopf gefallen.
    Ich wĂ€r fĂŒr jede Hilfe dankbar…

  4. Hallo!

    Vielen Dank erstmal fĂŒr die ganzen nĂŒtzlichen Tipps und Tricks auf deiner HP. Du konntest mir bei so manch kniffeligen Problem einen klaren Lösungsansatz liefern. DANKE!

    Nun habe ich ein kleines Problem mit diesem Artikel. Ich stelle mich einfach wieder nur dĂ€mlich an. Ich fĂŒge den Codeschnipsel in meine functions.php ein, am Ende wie geschrieben. Nur macht das leider meinen ganzen Blog „weiss“. Keine Sorge ich hab nen Backup+FTP Zugang. Aber ich bekomme das einfach nicht gebacken. Ich muss dazu sagen, dass meine functions.php ziemlich „klein“ ist, zzt. ist nur der Aufruf fĂŒr widgets und thumbnails enthalten. Liegt es vlt. daran?

    Ich wĂ€re fĂŒr ein wenig Hilfe sehr dankbar!

    Liebe GrĂŒĂŸe!

    1. Hej,

      wenn deine Seite komplett weiß bleibt, wĂŒrde ich auf einen Fehler im Code der functions.php tippen – eine falsch verschachtelte Funktion oder sowas. Wenn du magst, kannst du mir die Datei mailen, dann guck ich mal rein. 🙂

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen