我现在用的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>
参考链接