免插件实现日志分页导航

15 Comments

昨天开始,就一直在折腾博客,蛋疼的又换了个主题,这次是比较经典的 inove。为什么又要换主题?Forece这家伙的主题和我的撞墙了,没办法,他是大哥,所以只能我换。(其实早就想换了,这下有个借口比较好,把责任推卸掉。)

闲话不说了,进入主题。用 wordpress 的人都应该知道 WP-Pagenavi 这个插件,他的效果是可以实现分页导航,插件一安装,效果就能够出现了。用久了 wordpress ,大家就会开始追求速度了,减少一切不必要的插件,但是减来减去发现没几个是没用的。

大家用了如下方法,可以把 WP-Pagenavi 这个插件丢掉了。
首先在你当前主题的 functions.php 中任意地方,加入如下代码:

//分页导航
function par_pagenavi($range = 9){
	global $paged, $wp_query;
	if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
	if($max_page > 1){if(!$paged){$paged = 1;}
	if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";}
	previous_posts_link(' 上一页 ');
    if($max_page > $range){
		if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
		if($i==$paged)echo " class='current'";echo ">$i";}}
    elseif($paged >= ($max_page - ceil(($range/2)))){
		for($i = $max_page - $range; $i < = $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
		if($i==$paged)echo " class='current'";echo ">$i";}}
	elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
		for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i";}}}
    else{for($i = 1; $i < = $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
    if($i==$paged)echo " class='current'";echo ">$i";}}
	next_posts_link(' 下一页 ');
    if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}}
}

然后在你需要使用分页导航的地方(一般是index.php、category.php、archive.php、search.php)加入如下代码:
< ?php par_pagenavi(9) ?>

最后在加上漂亮的CSS,代码如下:
/* page_navi start*/
#pagenavi {
	border-top:1px solid #CCC;
  width:100%;
  height:36px;
  line-height:36px;
  text-align:center;
  overflow:hidden;
  padding-top:1em;
}
#pagenavi a{
  padding:3px 8px;
  margin:2px;
  text-decoration:none;
	border: 1px solid #BFBFBF;
}
#pagenavi a:hover, #pagenavi a.current{
  background: #F7F7F7;
  border: 1px solid #356aa0;
  color:#356aa0;
  font-weight:bolder;
}
/* page_navi end*/

好了,改完收工。
这方法具体来至哪里我也不记得了,在五木那里也发现了这个,大家可以去围观,不过没什么区别,嘿嘿。

已有 15 条评论 »

  1. 彼岸星辰
    彼岸星辰 2010-05-22 17:45:54

    前排围观!~看效果去了!~

  2. 沉冰浮水
    沉冰浮水 2010-05-22 20:03:24

    俺用ZB。。呵,

  3. 浩子
    浩子 2010-05-22 21:52:33

    额,不错哦,呵呵,但是没有插件的可定制性啊

  4. 翎峋
    翎峋 2010-05-22 22:06:27

    还是一样很慢。

  5. 逸冰
    逸冰 2010-05-22 22:25:19

    我也是跟风的,赶紧围上来...啊....观看,速度貌似要好很多

  6. 冰剑
    冰剑 2010-05-22 23:03:13

    @浩子
    还要怎么定制啊?就只是分页导航的效果,没别的了,那个插件也是这样的。

    @翎峋
    这服务器时快时慢的,不知道是插件装多了还是怎么。

    @逸冰
    有那么明显吗??

  7. 万戈
    万戈 2010-05-23 07:04:03

    这个就是从pagenavi插件里提取出来的,我现在用的也是这个方法,呵呵

  8. 平平
    平平 2010-05-23 15:31:39

    先留个记号,等我啥时候换了WP再说

  9. francis
    francis 2010-05-23 15:58:38

    哇,代码好复杂啊~

    许久没有把HTML和PHP混在一起写了……

  10. 浩子
    浩子 2010-05-23 15:59:38

    这次是来围观广告的……

  11. FORECE
    FORECE 2010-05-24 04:26:01

    现在懒了,弄代码什么的是你们年轻人的工作了。

  12. 沉冰浮水
    沉冰浮水 2010-05-24 09:44:07

    我一直也很蛋疼。。想换个主题的。。可是看上的都有比较严重的问题。。囧。。

  13. 冰剑
    冰剑 2010-05-24 12:52:52

    @万戈
    这个提取的好啊,减少一个万恶的插件。

    @平平
    快换吧,不过昨天看到BOBLOG官方的2.5演示,后台完全改变了,非常漂亮,虽然用WP了,但是还是很期待BO2.5的。

    @francis
    其实并不复杂,试着添加一次就发现很简单的。

    @FORECE
    汗,我也发现你没以前喜欢折腾了。

    @沉冰浮水
    确实,很多喜欢的主题,多少细节上处理有些不满意而放弃的,iNove是我觉得很完美的主题。

  14. lifishake
    lifishake 2010-05-24 14:34:38

    就这个功能来说,放function里跟独立的插件差别不大,提高不了多少速度.
    倒是可以在进后台的时候把那个后台配置页面的加载给省了.

  15. 求索阁
    求索阁 2010-08-18 10:09:20

    这个很久前都想弄,今天终于在你这找到了··