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. A.shun says:

    华丽的沙发,不解释~ :razz:

  2. A.shun says:

    Opera原生的功能是超级快进,我喜欢这种方式

    预读、自动拼接页面,通过脚本实现,FF的Gm也是可以做到的 :wink:

    好吧,Om和葡萄牙都很威武

    1. zwwooooo says:

      @A.shun 这下满足你的控要求了

  3. winy says:

    不喜欢预读,有时候会占用过多的资源

    1. zwwooooo says:

      @winy 这点资源无视

  4. 林木木 says:

    够用适用就好~

    1. zwwooooo says:

      @林木木 就是加3个if而已,不影响

  5. 久酷 says:

    不错,很好,哈哈

  6. 万戈 says:

    我懒,因为现在的可用,所以也就没有用willin大师的

    1. zwwooooo says:

      @万戈 你一点都不懒,自个折腾

  7. 比赛我也看了~
    c罗先用头运球呢 哈哈

    1. zwwooooo says:

      @ikeeptrying 那个球有点搞,C罗进了都笑了

  8. TTkea says:

    呵呵,,支持!

  9. 阿邙 says:

    啊哈 折腾来看看 :grin:

  10. ifenwen says:

    不错 已经用了之前的版本了

    1. zwwooooo says:

      @ifenwen 够用就好

  11. 疾风 says:

    真会玩代码啊 呵呵 :lol:

    1. zwwooooo says:

      @疾风 简单的才会玩下

  12. mice says:

    折腾折腾...

  13. 来学习 相互沟通 :razz:

  14. 蓝冰 says:

    擦,光知道要钱~!

    1. zwwooooo says:

      @蓝冰 请问这世界没钱行么?而且这是玩笑,别说的我好像钱奴一样

  15. 我也去折腾折腾

  16. Firm says:

    实话说C罗这两场表现都马马虎虎

  17. huangjun says:

    稍微测试一下就改好了,你还敢说你不厉害?!

    1. zwwooooo says:

      @huangjun 这个只是一些判断和调用本来的参数,一般懂点儿编程的就懂,像willin能自己写代码才是高手

  18. 听云 says:

    不错喔,我最近也在自己折腾一个简单的主题自己用,现在还是纯copy中

    1. zwwooooo says:

      @听云 CP-》原创,大家都是这样过来的 :mrgreen:

  19. 猪八戒 says:

    很有价值的文章。我的博客现在就是没有翻页,不太好。

    1. zwwooooo says:

      @猪八戒 很简单,用插件或者这段代码

发表评论

昵称 *

网址

B em del U Link Code Quote