2010年06月21日 116条评论

为 Mini Pagenavi 添加“上一页”、“下一页”链接

上次转载并自己加以折腾写了《willin 出品的 Mini Pagenavi 修改版》后,本来那时就想加入“上一页”、“下一页”的链接,但当时突然又偷懒了。

今天 A-shun 突然猛呼唤我,我以为他要给我钱,原来不是,是叫我帮忙为 Mini Pagenavi 加上“上一页”、“下一页”的链接,进一步完善并向页面导航插件靠齐。他的目的不是给我钱,是因为浏览器(Opera)有超级快进、预读、自动拼接页面的功能,所以那个链接很有必要。

于是乎,在本地稍加修改测试就搞定了,改了下函数,下面贴出,需要的朋友折腾玩玩吧。

1. 把下面的代码都扔到主题的 functions.php 里面:

/* Mini Pagenavi v1.0 by Willin Kan. Edit by zwwooooo */
if ( !function_exists('pagenavi') ) {
	function pagenavi( $p = 5 ) { // 取当前页前后各 2 页
		if ( is_singular() ) return; // 文章与插页不用
		global $wp_query, $paged;
		$max_page = $wp_query->max_num_pages;
		if ( $max_page == 1 ) return; // 只有一页不用
		if ( empty( $paged ) ) $paged = 1;
		echo '<span class="pages">Page: ' . $paged . ' of ' . $max_page . ' </span> '; // 显示页数
		if ( $paged > 1 ) p_link( $paged - 1, '上一页', '« Previous' );/* 如果当前页大于1就显示上一页链接 */
		if ( $paged > $p + 1 ) p_link( 1, '最前页' );
		if ( $paged > $p + 2 ) echo '... ';
		for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { // 中间页
			if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span> " : p_link( $i );
		}
		if ( $paged < $max_page - $p - 1 ) echo '... ';
		if ( $paged < $max_page - $p ) p_link( $max_page, '最后页' );
		if ( $paged < $max_page ) p_link( $paged + 1,'下一页', 'Next »' );/* 如果当前页不是最后一页显示下一页链接 */
	}
	function p_link( $i, $title = '', $linktype = '' ) {
		if ( $title == '' ) $title = "第 {$i} 页";
		if ( $linktype == '' ) { $linktext = $i; } else { $linktext = $linktype; }
		echo "<a class='page-numbers' href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a> ";
	}
}
// -- END ----------------------------------------

2. 在 index.php/home.php/archive.php等页面调用

<?php if (function_exists('pagenavi')) { pagenavi(); } ?>

3. 我的导航样式css参考

.page-numbers{line-height:16px;margin:0;padding:3px 5px;text-decoration:none;background:#fff;border-top:2px solid #fff;}
.page-numbers:hover{border-top:2px solid #ff00a4;}
.current,.current:hover{color:#fff;background:#45b9f6;border-top:2px solid #45b9f6;}
.current:hover{border-top:2px solid #00679d;}

效果看我博客首页底部的页面导航吧。

写完,现在葡萄牙:朝鲜的比分为 7:0,葡萄牙赢定了——废话,C罗终于进球了,而且这个进球很有趣。

zww
or
oooo

“为 Mini Pagenavi 添加“上一页”、“下一页”链接”有116条评论

  1. 不知 says:

    我好像是第一次来? 博客人气不错 :lol:

    1. zwwooooo says:

      @不知 应该是,因为我没去过你那 :mrgreen:

  2. 技术很强的博客,

    俺看不懂,555

    1. zwwooooo says:

      @懒人博客 看不懂直接CP使用

  3. 学习了,感觉和万戈、林木木写的那个免插件翻页代码差不多啊

    1. zwwooooo says:

      @奔四大叔 功能一样,代码不同,这个是最小代码量,所以叫mini,喜欢哪个用哪个。

  4. yetone says:

    超强,羡慕! :razz:

  5. 球犯 says:

    原来opera这么好阿,我还没发掘出其他功能呢~
    哈哈,折腾使人年轻~jiong~

    1. zwwooooo says:

      @球犯 OP的确很折腾,我也不太用,有时要用就请教shun

  6. 哲哲 says:

    貌似很多好东西都是willin出品···

    1. zwwooooo says:

      @哲哲 人家是低调高手嘛,我等只能稍加修改完善

  7. zzsdfc says:

    在用你的模板 :mrgreen:

    1. zwwooooo says:

      @zzsdfc 荒淫使用

  8. 很实用,哇哈哈

  9. 集趣 says:

    减少了一个插件,或许多博客的性能有提升

    1. zwwooooo says:

      @集趣 如果只是一个的话也没太大提升,多的话就会有

  10. xiaodog says:

    我该说啥?- -

    1. zwwooooo says:

      @xiaodog 什么都不要说

  11. BoKeam says:

    分页这个东西我还是等一段时间再弄

    1. zwwooooo says:

      @BoKeam 随时可以加,简单

  12. willin says:

    因為鏈接重覆, 我刪掉你又加上, 呵呵. 這也可以, 就看個人喜好吧...
    如果是為了預讀, 應該再加 rel="...", 這代碼就多了.

    1. zwwooooo says:

      @willin 有人要就加上了,反正只是加if,太复杂也不会,貌似评论翻页的“上一页”也没加rel

    2. willin says:

      @zwwooooo 我剛才腦筋又短路了, 忘了在 wp_head() 已經自動加了 rel, 這裏不用.

    3. zwwooooo says:

      @willin wp_head()自动加了rel?我用firebug看没有啊,要是给代码加上 rel 也不难,就加个参数判断即可,不多,我已经加了,你看看:
      if ( $linktype == '' ) { $linktext = $i; $nofollow = '';} else { $linktext = $linktype; $nofollow = ' rel="nofollow"';}
      echo "<a class='page-numbers' href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'{$nofollow}>{$linktext}</a> ";

    4. willin says:

      @zwwooooo 有, 在 head 有 rel='index', 'start', 'prev', 'next' 就是了, 不是在 pagenavi 裏.

    5. willin says:

      @zwwooooo ps. 這裏不要用 rel="nofollow"

    6. zwwooooo says:

      @willin rel就是加prev和next?

  13. hzlzh says:

    多了一个文章展示的机会,肯定有人会一直点着看的

  14. 天缘 says:

    博主劲是美女题图,不点进来都不好意思,每次都是失望,下次下次记得附个大美女图

    1. zwwooooo says:

      @天缘 这诱惑后的饥渴我忘了解决了,非常对不起

  15. xianzi says:

    首页文章的缩略图片好火爆啊! :!:

    1. zwwooooo says:

      @xianzi 调节一下 :mrgreen:

  16. Vicia says:

    对只有美女图表示不满,都没考虑到女性读者。 :mrgreen:

    1. 博百优 says:

      @Vicia 看来是来要帅哥照片的。

    2. zwwooooo says:

      @Vicia 这个……的确没考虑到……博客男性太多……

  17. 首页的美女图片怎么没有看到~

    1. zwwooooo says:

      @ikeeptrying 随机显示的,而且要没图片的文章

  18. [...] Willin Kan,比起我以前从 wp-pagenavi 直接挖出来的精简很多。感谢 om 为 Mini Pagenavi 添加“上一页”、“下一页”链接。仿照 Rss 订阅,为 Follow me 添加了一个菜单。主题的其他修改为链接添加 [...]

  19. Bee君 says:

    willin大师的作品,能手工代码实现就不用插件哈

    1. zwwooooo says:

      @Bee君 对啊,willin V5

  20. 哈哈。成功了。评论时又发现你一个好东西,天空影院 :mrgreen:

    1. zwwooooo says:

      @代码如歌 留链接,哼哼,小心spam你 :grin:

发表评论

昵称 *

网址

B em del U Link Code Quote