Pagebar Blätterfunktion für WordPress




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 = ‚&laquo;‘;

} if(empty($nxtlabel)) {

$nxtlabel = ‚&raquo;‘;

} $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().'“>&laquo; 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 &raquo;</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.




Über Daniel Birkhahn 400 Artikel
Ich bin Daniel Birkhahn, jung, dynamisch, sozial engagiert, Orthographiemuffel, lieber Ehemann und Papa von 4 Kindern. Beruflich schlage ich mich als Altenpfleger durch und nebenbei beschäftige ich mich mit Technik, dem Web und alles was irgendwie hinterfragt werden kann!

5 Kommentare

  1. 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 ;-) )

1 Trackback / Pingback

  1. Bye, bye Articles und WP-PageNavi | Sylvis Blog

Schreibe einen Kommentar zu Daniel Birkhahn Antworten abbrechen

E-Mail Adresse wird nicht veröffentlicht.


Achtung: Der Name und die E-Mail sind Pflichtfelder! Der Name, die E-Mail und die ermittelte IP wird auf Grundlage unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO gespeichert. Mehr Informationen siehe der Datenschutzerklärung.

*