Oft wird in WordPress die Seitennavigation mit „Nächster Seite“ und „Vorherige Seite“ angezeigt, um ältere Beiträge sehen zu können. Das geschieht je nach Einstellung in der Regel nach 5 bis 10 Beiträgen und ist nicht optimal. Denn durch diese Navigationsstruktur können keine Seiten übersprungen werden.
Oft weiß der Besucher in so einem Fall auch gar nicht, auf der wievielten Seite er sich befindet. Die Lösung für dieses Problem ist eine Pagination mit der du die Standard Seitennavigation mit einer benutzerfreundlicheren Variante ersetzen kannst.
Das Templete für die Pagination erstellen
Dazu musst du die „functions.php“ deines WordPress Blogs öffnen. Dort musst du folgenden Code eingeben, um das Template der Pagination zu definieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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)."'>«</a></li>"; if($paged > 1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged - 1)."'>‹</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)."\">›</a></li>"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($pages)."'>»</a></li>"; echo "</ul></nav>\n"; } } |
Geniale Themes: MyThemeShop | Vorteile: |
|
So rufst du die Pagination in einem Template auf
Nun musst du das Template öffnen, in das du die Pagination einbinden möchtest. Miestens handelt es sich dabei um die „index.php“, „category.php“ oder „archive.php“. Folgenden Code musst du dort einfügen, wo du die Pagination haben möchtest:
1 | <?php if (function_exists("pagination")) {pagination($additional_loop->max_num_pages); } ?> |
Danach sieht die Verlinkung zu deinen älteren Artikeln folgendermaßen aus:
Hier kannst du einstellen, wie viele Beiträge du auf einer Seite haben willst: