WordPress: Nummerierte Seitennavigation

Von Hause aus bieten die meisten WordPress Themes nur eine Seitennavigation, die jeweils einen Link für die älteren und neueren Artikel anbietet. Das hat für jeden User natürlich den Nachteil, dass er sich Seite für Seite durch die Artikel klicken muss. Um das zu verhindern und die Usability zu erhöhen, kann man eine nummerierte Seitennavigation in das Theme einbauen. Von Sergej Müller gibt es da eine einfache und schnelle Variante, wie das zu realisieren ist.

Der folgende Code wird in die functions.php eingebaut:

function sm_paging_bar($range = 4) {
/* Init */
$count = @$GLOBALS['wp_query']->max_num_pages;
$page = (int)get_query_var('paged');
$ceil = ceil($range / 2);

/* Kein Paging? */
if ($count <= 1) {
return false;
}

/* Erste Seite? */
if (!$page) {
$page = 1;
}

/* Limit errechnen */
if ($count > $range) {
if ($page <= $range) {
$min = 1;
$max = $range + 1;
} elseif ($page >= ($count – $ceil)) {
$min = $count – $range;
$max = $count;
} elseif ($page >= $range && $page < ($count – $ceil)) {
$min = $page – $ceil;
$max = $page + $ceil;
}
} else {
$min = 1;
$max = $count;
}
/* Ausgabe der Links */
if (!empty($min) && !empty($max)) {
for($i = $min; $i <= $max; $i++){
echo sprintf(
‚<a href=“%s“%s>%d</a>‘,
get_pagenum_link($i),
($i == $page ? ‚ class=“active“‚ : “),
$i
);
}
}
}

Der nachfolgende Code muss dann nur noch an die entsprechende Stelle kopiert werden, an der die Seitennavigation erscheinen soll. Alternativ kann der alte Code für die Navigation natürlich einfach mit diesem hier ersetzt werden.

<div class="postnav">
<span><?php previous_posts_link('«') ?></span>
<?php if (function_exists('sm_paging_bar')) { ?>
<?php sm_paging_bar() ?>
<?php } ?>
<span><?php next_posts_link('»') ?></span>
</div>

Published by

Schreibe einen Kommentar

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