我现在用的twentytwelve主题,默认页面下面没有显示页码,而是显示“早期文章”和“较新文章”。不使用插件,通过修改php代码可以简单实现页码显示。
一、添加页面显示
在当前主题根目录下的functions.php文件中添加函数
function wp_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('paged','%#%'), 'format' => '', 'total' => $wp_query->max_num_pages, 'current' => $current, 'show_all' => false, 'type' => 'plain', 'end_size'=>'1', 'mid_size'=>'3', '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); }
在index.php,category.php,search.php这3个文件中修改页码显示函数的调用。
我现在这个主题的页码显示函数是twentytwelve_content_nav(),用wp_pagenavi()替换此函数即可。
显示页码的完整函数调用如下:
<?php wp_pagenavi(); ?>
函数参数说明
<?php echo paginate_links( $args ); $args=array( 'base'=> '%_%', 'format'=> '?page=%#%', 'total'=> 1,//总共显示的页码数 'current'=> 0,//当前页码数 'show_all' => False,//是否将所有页码都显示出来,可以如上图中间显示省略号,需配合下两个参数 'end_size'=> 1,//在最后面和最前面至少显示多少个数,比如1,如图,最后面显示了至少显示一个页码“20” 'mid_size' => 2,//在当前页码的前后至少显示多少个页码数 'prev_next' => True,//是否显示“上一页”“下一页”链接 'prev_text' => __('« Previous'),//“上一页”链接显示的文字 'next_text' => __('Next »'),//“下一页”链接显示的文字 'type' => 'plain', 'add_args' => False, 'add_fragment' => ); ); ?>
二、设置页码样式
在style.css文件中添加样式
.page_navi{width:100%;height:36px;line-height:36px;text-align:center;overflow:hidden;padding-top:1em;} .page_navi a{padding:3px 8px;margin:2px;text-decoration:none;color:#888;border:1px solid #ccf;} .page_navi a:hover,.page_navi a.current{border:1px solid #356aa0;color:#356aa0;font-weight:bolder;}
把页面调用的地方修改为如下即可
<div class="page_navi"> <?php wp_pagenavi(); ?> </div>
参考链接