WordPress实现页码/分页/翻页效果。
WordPress 自带的默认分页函数如下:
<?php posts_nav_link(); ?>
使用此函数将实现 « Previous Page — Next Page » 效果,还可以设置成其他显示方式,详细参数的设置查看:官方文档。
可见自带的页码/分页/翻页效果是非常弱的,并不能实现我们想要的效果,下面我们就看下大兵博客是如何实现的页码效果的。
首先,将以下代码扔到 functions.php 模板中:
//页码/分页/翻页效果
functionwp_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’,//在最后和最前至少显示多少个页码数,这里最后最前至少显示“1” 页的意思
‘mid_size’=>’4’,//在最后和最前之间至少显示多少个页码数
‘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’));
echopaginate_links($pagination);
}
然后,设置好相关参数后,在需要显示页码/分页/翻页效果的模板中调用我们定义好的函数:
<!– 分页函数–><?php wp_pagenavi(); ?>
通常分页函数放到首页模板 index.php 和 存档模版 archive.php 中,当然也需要自己设置好CSS样式,才能达到自己的视觉体验。
最后,效果见大兵博客首页页码效果。