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>';
}
用法
pagination(
total amount of item/rows/whatever,
limit of items per page,
current page number,
url
);
示例
pagination(45, 20, 1, 'http://example.com/userlist/%d.html');
输出 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>
第一个代码块中的代码已损坏。html 链接的代码不可见。
谢谢 Frank,已修复。
谢谢。很棒的工作!
代码无法运行…….
我在网站上分页的页面遇到了 SEO 问题。如何完全阻止或禁用分页?这里是一个页面的示例
http://www.cardownloan.com/page/269/?option=com_content&task=view&id=73&Itemid=1
我有很多这样的页面,这是一个 SEO 噩梦
谢谢
在页面的头部添加一个这样的规范元标记
哈哈哈哈… 我喜欢你,不要在这个问题上说任何指导….
需要一点帮助吗?
这是一个代码片段,而不是教程。如果你看不懂代码,就不要用它。
就这么简单。
互联网
感谢你提供有用的代码。它将帮助许多初级程序员。
谢谢!我不想再写另一个这样的代码,而你的代码非常有效!
效果很好。你也可以更改 for 循环中的页面链接为
这样你就不会链接到当前所在的页面。