分页导航菜单是一个网站必不可少的元素,今天就和大家分享一下倡萌使用了很久的 WordPress 代码实现分页导航 的方法。

导航的效果如图所示:

wpdaxue.com-201210035

实现的方法很简单,一起来折腾吧。

1. 将下面的代码放到 functions.php 最后一个 ?> 的前面

  1. function par_pagenavi($range = 9){
  2. 	global $paged, $wp_query;
  3. 	if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
  4. 	if($max_page > 1){if(!$paged){$paged = 1;}
  5. 	if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "'  title='跳转到首页'> 返回首页 </a>";}
  6. 	previous_posts_link(' 上一页 ');
  7.     if($max_page > $range){
  8. 		if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
  9. 		if($i==$paged)echo " ";echo ">$i</a>";}}
  10.     elseif($paged >= ($max_page - ceil(($range/2)))){
  11. 		for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
  12. 		if($i==$paged)echo " ";echo ">$i</a>";}}
  13. 	elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
  14. 		for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " ";echo ">$i</a>";}}}
  15.     else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
  16.     if($i==$paged)echo " ";echo ">$i</a>";}}
  17. 	next_posts_link(' 下一页 ');
  18.     if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "'  title='跳转到最后一页'> 最后一页 </a>";}}
  19. }

2. 添加下面的 css 样式到你的 style.css 中

  1. .page_navi{overflow:hidden;width:100%;text-align:center}
  2. .page_navi a{height:36px;border:1px solid #DDD;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;color:#888;text-decoration:none;line-height:36px;margin:2px;padding:3px 8px}
  3. .page_navi a:hover,.page_navi a.current{border:1px solid #FFBB76;color:#FF7200;font-weight:bolder}

3. 在需要显示的地方 (比如主题的 index.php 、 archive.php 、 category.php 、 search.php) 中添加下面的调用代码即可

  1. <div class="page_navi"><?php par_pagenavi(9); ?></div>

上面的数字表示最大显示几页,你可以根据自己的需要修改。