Da die Blätterfunktion für meine Theme bzw. für WordPress sehr dürftig ist musste eine andere Lösung für die Seitennavigation her. Plugins für die Pagebar gibt es viele aber diese Plugins machen meiner Meinung nach auch die Webseite langsam. Deshalb habe ich mich für eine einfache Pagebar Blätterfunktion ohne Plugin entschieden die ich hier gerne vorstellen möchte.
Gesehen habe ich die Pagebar Blätterfunktion für WordPress bei Michael Martin im Artikel Add Google-Style Page Navigation to your Category and Search Pages. Ich habe die Blätterfunktion für die Seitennavigation noch etwas verändert so das jetzt die maximale Seitenzahl auch mit anzeigt. In den Tag-Seiten wird nun auch die Pagebar mit angezeigt!
Die WordPress Blätterfunktion für die Seitenavigation sieht so aus:
bzw. so aus:
Das muss in die functions.php im Theme-Verzeichniss kopiert werden:
<?php function wp_pagenavi($before = “, $after = “, $prelabel = “, $nxtlabel = “, $pages_to_show = 5, $always_show = false) {
global $request, $posts_per_page, $wpdb, $paged;
if(empty($prelabel)) { $prelabel = ‚«‘;
} if(empty($nxtlabel)) {
$nxtlabel = ‚»‘;
} $half_pages_to_show = round($pages_to_show/2);
if (!is_single()) {
if(!is_category()&&!is_tag()) {
preg_match(‚#FROMs(.*)sORDER BY#siU‘, $request, $matches); } else {
preg_match(‚#FROMs(.*)sGROUP BY#siU‘, $request, $matches); }
$fromwhere = $matches[1];
$numposts = $wpdb->get_var(„SELECT COUNT(DISTINCT ID) FROM $fromwhere“);
$max_page = ceil($numposts /$posts_per_page);
if(empty($paged)) {
$paged = 1;
}
if($max_page > 1 || $always_show) {
echo „$before <div class=’alignleft‘>Seite <strong>$paged</strong> von $max_page </div><div class=’centre‘>“; if ($paged >= ($pages_to_show-1)) {
echo ‚<a href=“‚.get_pagenum_link().'“>« Anfang</a> ‚; }
previous_posts_link($prelabel);
for($i = $paged – $half_pages_to_show; $i <= $paged + $half_pages_to_show; $i++) { if ($i >= 1 && $i <= $max_page) { if($i == $paged) {
echo „<strong class=’on‘>$i</strong>“;
} else {
echo ‚ <a href=“‚.get_pagenum_link($i).'“>‘.$i.'</a> ‚; }
}
}
next_posts_link($nxtlabel, $max_page);
if (($paged+$half_pages_to_show) < ($max_page)) {
echo ‚ <a href=“‚.get_pagenum_link($max_page).'“>Ende »</a>‘; }
echo „</div> $after“;
}
}
}
?>
Das muss in die index.php und archiv.php zwischen <div class=“navigation“> und </div>:
<?php if(function_exists(‚wp_pagenavi‘)) { wp_pagenavi(“, “, “, “,5, false);} ?>
Wer den Code zum einfügen oben nicht richtig angezeigt bekommt der kann hier den Quellcode WordPress-Blaetterfunktion als Textdatei runterladen. Der Einbau der Pagebar Blätterfunktion in die eigene Theme ist wie oben beschrieben sehr einfach und bedarf nicht unbedingt eines zusätzlichen Plugins, denn es geht auch ohne Plugin wie ich finde.
Dankeschön, ich hatte mich auch schon daran versucht, jedoch habe ich dann irgendwie vor und zurück 2x gehabt, aber die Pagination-Funktion, so wie Du sie hast, die ist ausgeblieben.
Daher nochmal DANKE dafür.
(vielleicht packe ich die Funktion mal in ein Plugin ;-) )
Vielen dank für den Code.
Allerdings habe ich ein Problem.
Bei mir ist auf einmal bei 196 Seiten schluß, dabei habe ich 215 Seiten.
Sieht lustig aus http://www.airportzentrale.de/page/215/
Seite 215 von 196
Gibt es eine Erklärung dafür?
Nein kann ich mir nicht mal erklären! Ging das ohne die pagebar richtig? Eventuell ein fehler in der funktion.php oder durch ein anderes plugin. Einfach mal mögliche entfernen! Weis wirklich nicht warum aber eventuell mal einen anderen Code testen zb. http://www.techspread.de/200/pagination-in-wordpress-theme-einbauen das geht auch und sieht gut aus! ;-)
Danke für die schnelle Antwort. Ich habe den Quelltext einfach ein wenig abegändert. So funktioniert es nun ;-)
Super, genau nach so etwas habe ich gesucht! Schnell, schlicht, einfach!
Dankeschön!!!