WordPress 不用插件实现翻页功能

很多使用 WordPress 的博友都是通过 PageNavi 插件来实现的翻页功能,如果你不想用插件,可以通过添加代码的方法实现。网上流传很广的是 willin 大师的 Mini Pagenavi,园子使用的是 zwwooooo 提供的修改版,原文请点击这里

之所以我要使用代码来替换插件,主要原因是今天在后台查看插件时,发现目前使用的插件已经多达了20个,通过精简优化,争取把插件压缩到10个左右。毕竟插件多的话多少会影响到博客的访问速度的。

WordPress 不用插件实现翻页的方法

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 'Page: ' . $paged . ' of ' . $max_page . '  '; // 显示页数
		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 "{$i} " : 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 "{$linktext} ";
	}
}
// -- END ----------------------------------------

2.在出现翻页功能的地方插入以下代码:


如果你要问哪些页面需要插入,一般是 index.php、home.php、archive.php 这样的页面中。园子是添加在 index.php和archive.php文件中以下代码的前面:


3.把以下样式添加到你主题的 style.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;}

上面的样式是 zwwooooo 提供的,园子修改过的样式为:

.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 #225588;}
.current,.current:hover{color:#333;background:#F1F5F6;border-top:2px solid #333333;}
.current:hover{border-top:2px solid #225588;}

4.停用 WP-PageNavi 翻页插件即可。看看最终实现的翻页导航样式吧:

园子博客翻页导航样式

园子博客翻页导航样式

通过这些代码又让我少用了一个插件,呵呵。

WordPress 不用插件实现翻页功能》上有33条评论

发表评论