WordPress 现在已经自己支持 Pagenavi 功能了,
首先要在functions.php 文件中加入以下代码
/*分页功能*/
function native_pagenavi(){
global $wp_query, $wp_rewrite;
$wp_query->query_vars["paged"] > 1 ? $current = $wp_query->query_vars["paged"] : $current = 1;
$pagination = array(
"base" => @add_query_arg("page","%#%"),
"format" => "",
"total" => $wp_query->max_num_pages,
"current" => $current,
"prev_text" => "« ",
"next_text" => " »"
);
if( $wp_rewrite->using_permalinks() )
$pagination["base"] = user_trailingslashit( trailingslashit( remove_query_arg("s",get_pagenum_link(1) ) ) . "page/%#%/", "paged");
if( !empty($wp_query->query_vars["s"]) )
$pagination["add_args"] = array("s"=>get_query_var("s"));
echo paginate_links($pagination);
}
archive.php
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<li id="post_<?php the_ID(); ?>">
<h2><span class="ico19 left"></span>[<?php the_category(',') ?>]
<a href="<?php the_permalink() ?>" rel="bookmark" title="查看文章: <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
<span class="span_right"> 评论:<?php comments_popup_link('[0]', '[1]', '[%]'); ?> | 浏览:<?php if(function_exists('the_views')) { the_views(' 次浏览', true); } ?></span></h2>
<?php echo cut_str(strip_tags(apply_filters('the_content', $post->post_content)),90,"…"); ?> (<?php past_date(); ?>)
<br style="clear:both" />
</li>
<?php endwhile; wp_reset_query(); ?></ul>
<div class="pagenav"><?php native_pagenavi($query_string);?></div>
分析
‘base’ 参数用来提供创建页面链接的参考链接
’format’ 参数是用来替换成页码
’total’ 参数是设置页面的总数
’current’ 参数用于设置当前的页码,它们都必须是整数。这些参数我们在使用的时候必须提供的。
‘show_all’参数设置为 true 就会显示所有的页面,默认情况它是被设置为 false 的
通过 ‘end_size’ 和 ‘mid_size’ 这两个参数来控制页码显示的规则。’end_size’ 参数是用来控制在开始和结束的两端显示多少个数字,默认是 1 。’mid_size’ 参数是用来显示多少个数字显示在当前页数字的两边,并且不包括当前页。
‘prev_next’ 这个参数是用来设置是否显示上一页和下一页的页码链接,默认是 true,然后我们可以通过 ‘prev_text’ 和 ‘next_text’ 这两个参数来控制上一页和下一页的文本。
css
一,
.pagenav{
clear:both;
padding-top:9px;
}
.pagenav span,.pagenav a{
font-size:14px;
margin: 2px 6px 2px 0;
background:#fff;
border:1px solid #e5e5e5;
color:#787878;
padding:3px 8px;
text-decoration:none;
}
.pagenav a:hover{
background: #8391A7;
border:1px solid #fff;
color:#fff;
}
.pagenav .current{
border:1px solid #8d8d8d;
color:#393939
}
二,
/*@pagenav*/
.pagenav{
text-align:center;
padding:1em;
clear:both;
}
.page-numbers{
border-bottom:5px solid #ccc;
padding:5px 8px 4px;
margin:0 5px;
}
.page-numbers:hover,.pagenav .current{
color:#000;
border-bottom:5px solid #000;
}