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

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.

Schulungen von kulturbanause

Intensive Trainings mit hohem Praxisbezug.

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

thumb

Jonas ist Gründer der Webdesign Agentur kulturbanause® und des kulturbanause® Blogs. Er übernimmt Projektleitung, Grafik sowie Frontend- und WordPress-Development und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Als Dozent leitet er Schulungen und Workshops. Am liebsten beschäftigt er sich mit Projekten und Themen, die ihn gleichermaßen konzeptionell als auch gestalterisch und technisch fordern.

Seminare mit Jonas Hellwig anzeigenJonas Hellwig bei Xing

Feedback & Ergänzungen – 14 Kommentare

  1. Dietmar
    schrieb am 24.12.2018 um 11:41 Uhr:

    … gesucht, gefunden – funktioniert :)
    DANKE

    Antworten
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. Cathrin
    schrieb am 04.02.2013 um 13:34 Uhr:

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

    Antworten
  8. 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
  9. 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 (Autor)
      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
  10. 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
  11. 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 (Autor)
      schrieb am 09.10.2012 um 12:15 Uhr:

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

      Antworten

Schreibe einen Kommentar zu Jonas Hellwig Antworten abbrechen

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 →