现在的位置:首页>wordpress>正文

不用插件实现wordpress归档文章分页

2012年12月11日 ⁄ 共 2793字 评论 1 条

现在用wordpress做网站博客的人已经越来越多了,可以说目前有将近一半的网站是基于wordpress来制做的.而现在的免费插件也是越来越多,很多的功能其实你只要安装一个插件就能够达到想要的效果.类似今天的文章分页的插件也有很多,但是我们其实只要少少的几行代码就可以做到,既然这样,那相信大多数的朋友会选择使用代码来实现了.

事实上,我们还有很多的wordpress插件,是完全可以省掉的.

一.修改functions函数

首先我们在自已博客的当前主题的functions.php函数中加入以下代码:

  1. //分页导航   
  2. function pagination($query_string){   
  3. global $posts_per_page$paged;   
  4. $my_query = new WP_Query($query_string ."&posts_per_page=-1");   
  5. $total_posts = $my_query->post_count;   
  6. if(emptyempty($paged))$paged = 1;   
  7. $prev = $paged - 1;                            
  8. $next = $paged + 1;    
  9. $range = 8; // 修改数字,可以显示更多的分页链接   
  10. $showitems = ($range * 2)+1;   
  11. $pages = ceil($total_posts/$posts_per_page);   
  12. if(1 != $pages){   
  13.     echo "<div class='pagination'>";   
  14.     echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a id='btnb1' href='".get_pagenum_link(1)."'>第一页</a>":"";   
  15.     echo ($paged > 1 && $showitems < $pages)? "<a id='btnb2' href='".get_pagenum_link($prev)."'>上一页</a>":"";           
  16.     for ($i=1; $i <= $pages$i++){   
  17.     if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){   
  18.     echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";    
  19.     }   
  20.     }   
  21.     echo ($paged < $pages && $showitems < $pages) ? "<a id='btnb3' href='".get_pagenum_link($next)."'>下一页</a>" :"";   
  22.     echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a id='btnb4' href='".get_pagenum_link($pages)."'>最后一页</a>":"";   
  23.     echo "</div>\n";   
  24.     }   
  25. }  

二.修改分类页面

再在你的分类目录模板中加入以下代码(一般是category.php这个文件,也有的是archive.php这个,我的就是后面这个文件):

<!-- 翻页 开始 -->
<?php pagination($query_string); ?>
<!-- 翻页 结束 -->

注意上面的代码要放在读取文章的内容下面,

<?php if (have_posts()) : ?>
.......
<?php endwhile; ?>

在这里加入上面的代码.

也就是在例如我现在的主题加入位置如下图:

归档文章分页

三.调整样式接着我们还要对分页的样式作一下调整,这个要针对你的主题来修改,不会的不要紧,可以参考我的css样式代码,如下:

  1. /* CSS For Navigation Without Plugin */
  2. .pagination{width:748px; float:left;}
  3. .current{margin-left:3px; font-size: 14px; text-decoration: none; line-height: 24px; height: 24px; text-align: center; display:block; float:left; padding:0px 6px 0px 6px; color:#fff; background: url(images/pagecolorbg.gif) repeat-x 0 center; border: 1px solid #acd050; font-weight:bold;}
  4. .pagination a{ margin-left:3px; font-size: 14px; color: #666; text-decoration: none; line-height: 24px; height: 24px; text-align: center; display:block; float:left; padding:0px 8px 0px 8px; border: 1px solid #dadada;background: url(images/sub_bg4.gif) repeat-x 0 center;}
  5. .pagination a:hover{color:#fff;text-decoration: none;background: url(images/pagecolorbg.gif) repeat-x 0 center; border: 1px solid #acd050;}

上面的样式仅供参考,具体还得以您自已的主题为准.例如我的wodpress主题lovnvns加载了几个图片,您可以将图片部分改为

background-color:#9ACD32;

四.效果

福利老幺改为以后的效果如下图:

归档文章分页

再去看看你的效果,怎么样,还不错吧,福利老幺现在就是用的上面这种方法.如果你一定要用插件,那你可以参考解决wordpress翻页插件WP-PageNavi不能使用的方法这一篇文章.

评论 1 条 评论内容很精采,有内幕,而且绝对有干货

  1. 隔膜压滤机 2015年01月06日 20:06  @回复  Δ-49楼 回复

    好文章,内容雷霆万钧.

给我留言