不会健身的程序员
不是好作家

wordpress不用插件实现分页

越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,本站目前的主题《linove》就是为了实现尽量少用插件而设计的。今天折腾了一下首页分页功能,原本小林是用《wp-pagenavi》,为了去掉分页插件,小林上网找了下方法,并结合自己的主题,修改了这个分页功能。

步骤一:在functions.php中添加下面函数

function pagination($query_string){
global $posts_per_page, $paged;
$my_query = new WP_Query($query_string ."&posts_per_page=-1");
$total_posts = $my_query->post_count;
if(empty($paged))$paged = 1;
$prev = $paged - 1;
$next = $paged + 1;
$range = 2; // only edit this if you want to show more page-links
$showitems = ($range * 2)+1;

$pages = ceil($total_posts/$posts_per_page);
if(1 != $pages){
echo "<div class='pagination'>";
echo "<span class='inactive'>第 ".$paged." / ".$pages." 页</span>" ;
echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."'>最前</a>":"";
echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."'>上一页</a>":"";

for ($i=1; $i <= $pages; $i++){
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){
echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
}
}

echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."'>下一页</a>" :"";
echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."'>最后</a>":"";
echo "</div>n";
}
} 

步骤二:在style.css中添加下面样式

/* pagenav START */
.pagination{
line-height:23px;
}
.pagination span, .pagination a{
font-size:12px;
margin: 2px 6px 2px 0;
background:#fff;
border:1px solid #e5e5e5;
color:#787878;
padding:2px 5px 2px 5px;
text-decoration:none;
}
.pagination a:hover{
background: #8391A7;
border:1px solid #fff;
color:#fff;
}
.pagination .current{
background: #fff;
border:1px solid #8d8d8d;
color:#393939;
font-size:12px;
padding:2px 5px 2px 5px;
}
/* pagenav END */

步骤三:在需要显示分页的地方添加下面代码

<?php if(function_exists('wp_pagenavi')) : ?>
        <?php wp_pagenavi() ?>
    <?php else : ?>
        <?php pagination($query_string); ?>
    <?php endif; ?>

小林注:上面这段代码的意思是:如果你装了wp-pagenavi插件的话就显示pagenavi插件的效果,没有安装的话就显示我们自己定义的分页效果,这样可以给主题更多的选择。

最后希望小林的这篇文章可以帮到你。

赞(0)
转载请注明出处:林俊龙博客 » wordpress不用插件实现分页

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

年年岁岁花相识,岁岁年年人不同

给我留言网站地图

谢主隆恩

支付宝扫一扫打赏

微信扫一扫打赏