function pagination($item_count, $limit, $cur_page, $link)
{
$page_count = ceil($item_count/$limit);
$current_range = array(($cur_page-2 < 1 ? 1 : $cur_page-2), ($cur_page+2 > $page_count ? $page_count : $cur_page+2));
// First and Last pages
$first_page = $cur_page > 3 ? '<a href="'.sprintf($link, '1').'">1</a>'.($cur_page < 5 ? ', ' : ' ... ') : null;
$last_page = $cur_page < $page_count-2 ? ($cur_page > $page_count-4 ? ', ' : ' ... ').'<a href="'.sprintf($link, $page_count).'">'.$page_count.'</a>' : null;
// Previous and next page
$previous_page = $cur_page > 1 ? '<a href="'.sprintf($link, ($cur_page-1)).'">Previous</a> | ' : null;
$next_page = $cur_page < $page_count ? ' | <a href="'.sprintf($link, ($cur_page+1)).'">Next</a>' : null;
// Display pages that are in range
for ($x=$current_range[0];$x <= $current_range[1]; ++$x)
$pages[] = '<a href="'.sprintf($link, $x).'">'.($x == $cur_page ? '<strong>'.$x.'</strong>' : $x).'</a>';
if ($page_count > 1)
return '<p class="pagination"><strong>Pages:</strong> '.$previous_page.$first_page.implode(', ', $pages).$last_page.$next_page.'</p>';
}
Verwendung
pagination(
total amount of item/rows/whatever,
limit of items per page,
current page number,
url
);
Beispiel
pagination(45, 20, 1, 'http://example.com/userlist/%d.html');
Ausgabe HTML
<p class="pagination">
<strong>Pages:</strong>
<a href="http://example.com/userlist/1.html"><strong>1</strong></a>,
<a href="http://example.com/userlist/2.html">2</a>,
<a href="http://example.com/userlist/3.html">3</a>
| <a href="http://example.com/userlist/2.html">Next</a>
</p>
Der Code im ersten Codeblock ist beschädigt. Der Code für die HTML-Links ist nicht sichtbar.
Danke Frank, das ist behoben.
Danke. Tolle Arbeit!
Der Code funktioniert nicht…….
Ich habe einige SEO-Probleme mit den paginierten Seiten auf meiner Website. Wie blockiere oder deaktiviere ich die Paginierung vollständig? Hier ist ein Beispiel für eine Seite
http://www.cardownloan.com/page/269/?option=com_content&task=view&id=73&Itemid=1
Ich habe viele davon, und es ist ein SEO-Albtraum
danke
Fügen Sie einen kanonischen Meta-Tag wie diesen zum Head der Seite hinzu
haahahahaha… Ich mag, dass du kein Wort der Anleitung dazu sagst….
Können Sie mir bitte helfen?
Es ist ein Snippet, kein Tutorial. Wenn du den Code nicht verstehst, benutze ihn nicht.
So einfach ist das.
Internet
Danke für Ihren nützlichen Code. Er wird vielen Junior-Programmierern helfen.
Danke! Ich hatte keine Lust, einen weiteren dieser zu schreiben, und deiner funktioniert großartig!
Funktioniert gut. Du kannst die Seitenverlinkung in der for-Schleife auch ändern in
Damit die Seite, auf der du dich gerade befindest, nicht verlinkt ist.