Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

Pagination in WordPress

In den Einstellungen von WordPress kann festgelegt werden, wie viele Beiträge auf einer Seite angezeigt werden sollen. Häufig sind es ca. zehn Artikel. Wenn diese Zahl erreicht ist, blendet das WordPress-Theme eine Seitennavigation („Nächste Seite“ / „Vorherige Seite“) ein, damit der Besucher auch ältere Beiträge erreichen kann. Leider kann über diese Links keine Seite übersprungen werden. Auch ist dem Besucher oft unklar, auf welcher Seite er sich befindet. Mit einer Pagination ersetzt ihr die Standard-Seitennavigation durch eine benutzerfreundlichere Version.

functions.php – Template für Pagination definieren

Öffnet die functions.php des Themes und fügt folgenden Code ein. Mit diesem Snippet wird das Template der Pagination definiert – ein <nav>-Element mit ungeordneter Liste:

/* pagination  */
function pagination($pages = '', $range = 4)
{
     $showitems = ($range * 2)+1;  
     global $paged;
     if(empty($paged)) $paged = 1;
     if($pages == '')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         { $pages = 1; }
     }   
 
     if(1 != $pages)
     {
         echo "<nav class=\"pagination\"><ul>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link(1)."'>&laquo;</a></li>";
         if($paged > 1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a></li>";
 
         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<li><span class=\"current\">".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class=\"inactive \">".$i."</a></li>";
             }
         }
 
         if ($paged < $pages && $showitems < $pages) echo "<li><a href=\"".get_pagenum_link($paged + 1)."\">&rsaquo;</a></li>";
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($pages)."'>&raquo;</a></li>";
         echo "</ul></nav>\n";
     }
}

Pagination im WordPress-Theme aufrufen

Öffnet nun das Template in dem die Pagination eingebunden werden soll. Das ist häufig die index.php, die tag.php, die category.php oder die archive.php. Fügt folgenden Code dort ein, wo die Pagination erscheinen soll und ersetzt[EUER INDIVIDUELLER LOOP] mit der Variablen die ihr für WP-Query o.ä. vergeben habt.

Auch eine Einbindung außerhalb des Loops ist möglich.

<?php if (function_exists("pagination")) {pagination([EUER INDIVIDUELLER LOOP]->max_num_pages); } ?>

Individueller Loop mit Pagination

Wenn ihr einen angepassten Loop oder einen Custom Post Type von WordPress mit einer Pagination ausstatten wollt, verwendet am besten einen WP_Query(). Wir haben in einem separaten Beitrag beschrieben, wie der WP_Query so angepasst wird, dass er zu einer Pagination kompatibel ist. WP_Query() mit Pagination.

Geschrieben von Jonas

Benutzerbild

Jonas ist Gründer der Agentur kulturbanause und des kulturbanause Blogs. Er arbeitet an der Schnittstelle zwischen UX/UI Design, Frontend und Redaktion und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Jonas Hellwig ist regelmäßig als Sprecher auf Fachveranstaltungen anzutreffen und unterstützt mit Seminaren und Workshops Agenturen und Unternehmen bei der Planung, der Gestaltung und der technischen Umsetzung von Web-Projekten.

Jonas Hellwig bei Xing

Feedback & Ergänzungen – 18 Kommentare

  1. VW
    schrieb am 05.03.2023 um 15:36 Uhr:

    Hi,
    ich stehe gerade total auf dem Schlauch, was ich anstelle von [EUER INDIVIDUELLER LOOP] eingeben muss…
    Kann mir das jemand nochmal erklären bzw. ein Beispiel geben?

    Vielen Dank

    Antworten
    • Jonas Hellwig
      schrieb am 06.03.2023 um 08:08 Uhr:

      Du kannst den Loop über eine Variable aufrufen – z.B. wenn du einen WP_Query zum Erzeugen des Loop verwendet hast. Diese Variable muss dort eingetragen werden. Siehe auch unseren Beitrag zur Pagination in WP_Query.

      Antworten
  2. Sandra
    schrieb am 27.01.2022 um 17:28 Uhr:

    Achtung: Wenn man eine Blätterfunktion mit einem Custom Post Type realisieren will und der Post Type den gleichen Namen hat, wie die Seite auf der man die Pagination einbauen möchte, dann führt das zu einem Fehler! Mit Hilfe von folgendem Code in der functions.php konnte ich das Problem dann gottseidank noch lösen („news“ muss natürlich mit dem Namen eures Post Types ausgetauscht werden): add_rewrite_rule(‚^news/page/([0-9]+)‘,’index.php?pagename=news&paged=$matches[1]‘, ‚top‘);

    Antworten
  3. Dietmar
    schrieb am 24.12.2018 um 11:41 Uhr:

    … gesucht, gefunden – funktioniert :)
    DANKE

    Antworten
  4. Tanja
    schrieb am 10.01.2017 um 11:02 Uhr:

    hallo jonas,
    ich arbeite mich gerade durch deinen CD-Workshop „WP Themes entwickeln“ (gut gemacht ;-) …) und wollte diese pagination in mein – auf dieser wissensgrundlage – neues basistheme einbauen. aber es funktioniert nicht (und im original „programmkino“-theme auch nicht.) nav wird nicht generiert – öde leere im quellcode. in meinen alten theme-vorlagen hingegegen läuft es. an was kann das liegen?

    liebe grüße, tanja

    Antworten
  5. WordPress Pagination • Yvonne Hofmann
    schrieb am 18.11.2014 um 10:10 Uhr:

    […] Auf der Seite von Kulturbanause.de habe ich dazu einen PHP-Code gefunden. kulturbanause.de […]

    Antworten
  6. Pagination in WordPress erstellen und einbinden | Sourceblogging
    schrieb am 02.08.2014 um 15:14 Uhr:

    […] externe Seite. Die beste Version, die ich finden konnte ist unter folgender Adresse zu erreichen: https://blog.kulturbanause.de/2012/10/pagination-in-wordpress (01.08.2014 – 17:29 […]

    Antworten
  7. Kathrin
    schrieb am 19.05.2014 um 03:59 Uhr:

    Ich hab mal eine Frage… und zwar, kann man auch ein Pagination auch in der page.php einbauen? Oder Muss ich das über Category machen?

    Lg Kathrin

    Antworten
  8. Kilian
    schrieb am 13.08.2013 um 16:30 Uhr:

    Toller Beitrag! Mal ne richtig doofe Frage, aber wie verhindere ich mit einer intelligent (also nicht manuell) Lösung, das Page 2, 3, (…), indexiert werden?

    Ich habe bei bestimmten taxonomie cats bis zu 10 Seiten, möchte aber das Google immer Seite 1 indexiert und den Rest nur liest.

    Vielen Dank

    Antworten
  9. Cathrin
    schrieb am 04.02.2013 um 13:34 Uhr:

    Vielen Dank – code funktioniert bestens. Auf jeden Fall benutzerfreundlicher als die Standard-Einstellung.

    Antworten
  10. René Grosche
    schrieb am 18.10.2012 um 15:08 Uhr:

    Wie immer tolle Sache :)

    copy pass // stylen // läuft *i like*

    Wo bleibt die DVD mit best of WP ;) Mein Kaufsegen hast du :)

    Antworten
  11. Marcus
    schrieb am 12.10.2012 um 11:10 Uhr:

    Hey wenn ich das einbinde komme ich nur auf die 404.php
    alle Links laufen auf folgende referenz:
    /page/2

    wo ist der Fehler ?

    Antworten
    • Jonas Hellwig
      schrieb am 12.10.2012 um 16:26 Uhr:

      Prüfe bitte mal deine Permalink-Struktur (Einstellungen → Permalinks). Hast du dort Standard gewählt? Wenn ja, ändere die Struktur mal in sprechende URLs ab.

      Antworten
  12. Tolle Hilfe
    schrieb am 12.10.2012 um 09:46 Uhr:

    Das ist wirklich mal hilfreich. Viele WordPressblogs haben zwar inzwischen ein tolles Design, aber die Pagination vom Basictheme. Wertet einen Blog auf!!

    Antworten
  13. MaWoSch
    schrieb am 09.10.2012 um 11:39 Uhr:

    Danke für den Tipp mit der schlanken functions.php Lösung. Ich nutze derzeit auf meinem Blog ein Plugin. Wobei ich ein paar Codezeilen direkt im Theme immer bevorzuge. Mal schauen, vielleicht baue ich um.

    Antworten
    • Jonas Hellwig
      schrieb am 09.10.2012 um 12:15 Uhr:

      Das ist exakt die Pagination die auch hier im Blog verwendet wird.

      Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →