Paginierung von Seiten oder Beiträgen in WordPress

Lange Beiträge oder Seiten in WordPress?

Werden Beiträge oder Seiten in WordPress sehr lang, besteht die Möglichkeit, diese durch Paginierung auf mehrere Unterseiten aufteilen. Ein weiterer Anwendungsfall sind Bilderserien oder Fotoreihen, wenn man dem Benutzer das Scrollen ersparen möchte: Mit der Paginierung kann man sich von einem zum nächsten Foto durchklicken.

Es bleibt trotzdem nur ein WordPressbeitrag

Alle diese Unterseiten gehören aber weiterhin zu einem Beitrag oder Seite. Sie tauchen in der Navigation daher auch nur mit einem Navigationseintrag auf. Innerhalb einer Serie navigiert man aber über eine neue, zusätzliche Navigation. Ein Beispiel habe ich auf meinem Gartenblog Florilegium.de mit einer kleinen Fotoserie über Vögel bei mir Garten umgesetzt: Vögel im Garten. Hier kann man von Unterseite 1 bis 10 auf der Seitennavigation zwischen den einzelnen Fotos hin- und herwechseln.

Beispiel der Paginierung mit 10 Unterseiten

Beispiel der Paginierung mit 10 Unterseiten

Die Paginierung muss vom WordPress Theme unterstützt werden

Hat man ein Theme, dass die Paginierung bereits unterstützt, ist die Unterteilung einer Seite sehr einfach. Mit dem WordPress-Tag <!–nextpage–> wird die Seite in Untereinheiten zerlegt. Fertig. Hat man aber ein Theme erwischt, das diese Funktion nicht unterstützt, passiert erst mal gar nichts. Man muss diese Funktion den Templates der eigenen Seiten oder Beiträgen hinzufügen.

Die Funktion Paginierung dem WordPress Theme hinzufügen

Unterstützt das aktuelle Theme nicht die Paginierung, kann man diese Funktion seinen Templates einfach selbst hinzufügen. Dabei wird die WordPress Funktion wp_link_pages() dem jeweiligen Template hinzugefügt. Bei Blogbeiträgen ist dies die single.php, für Seiten wird die page.php im entsprechenden Theme-Ordner bearbeitet.

Die Paginierung kann bei eigenen Seitentypen natürlich auch den dafür zuständigen Templates hinzugefügt werden. Auch die Positionierung der Seitenlinks ist flexibel. Wichtig ist allerdings, dass die Funktion innerhalb der Loop angesiedelt wird. Die Loop bei WordPress ist derjenige Code, der die Beiträge bzw. die Inhalte der Seiten anzeigt.

Die Parameter der Funktion wp_link_pages()

Der Funktion wp_link_pages() können nun verschiedene Parameter übergeben werden, die man der Übersichtlichkeit halber erst in einen Array $args verpackt und diesen dann der Funktion übergibt: wp_link_pages( $args ).

Die Parameter im Einzelnen:

  • before: HTML-Code vor den Seitenlinks
  • after: HTML-Code nach den Seitenlinks
  • link_before: Text vor dem einzelnen Seitenlink
  • link_after: Text nach dem einzelnen Seitenlink
  • next_or_number: Legt die Art des Seitenlinks fest, Default-Wert ist number
  • nextpagelink: Text für den Link ’nächste Seite‘
  • previouspagelink: Text für den Link ‚vorhergehende Seite‘
  • pagelink: Beschriftung der Seitenzahlen, das %-Zeichen gilt als Platzhalter
  • echo: hat nur den Wert 1 oder 0. 1 ist der Default-Wert und zeigt die Seitennavigation an. 0 unterdrückt die Anzeige.

Der komplette Code-Schnipsel

Im Ganzen sieht der Code-Schnipsel für die Paginierung dann so aus:

<?php $args = array(
'before' => '<p>' . __('Seiten:'),
'after' => '</p>',
'link_before' => '',
'link_after' => '',
'next_or_number' => 'number',
'nextpagelink' => __('Nächste Seite'),
'previouspagelink' => __('Vorhergehende Seite'),
'pagelink' => '%',
'echo' => 1
); ?>
<?php wp_link_pages( $args ); ?>

Die Referenz der Funktion wp_link_pages() im WordPress Codex.

Lesetipps zum Thema WordPress (Affiliate-Links):

4 Kommentare

  1. Hallo Thomas,

    danke für die tolle Anleitung. Wir haben ein Template das die Paginierung nicht unterstützt. Den Code haben wir auch im Template unseres Newsbereichs unter:

    http://www.transalex.de/news/

    eingebaut, jedoch ohne Ergebnis. Muss da noch etwas beachtet werden?

    Schöne Grüße aus Nürnberg,

    Alexej

    Antworten
  2. Super. Danke. Das ist genau das, was ich gesucht hatte. Schade, dass WordPress solche Funktionen immer versteckt. Warum wird sowas nicht präsenter dargestellt?

    Gruß
    Marcus

    Antworten

Kommentar absenden

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