脱离插件,实现WordPress主题分页功能

发布时间:2020-05-05

越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,本站目前的新主题基本实现了零插件。网上不使用插件实现wordpress功能的文章也很多,之前我也写过wordpress相关日志函数一文,今天再补一个不使用插件实现翻页功能的函数代码。

wordpress默认翻页功能很弱,一页页翻,弄到你手麻,所以类似wp-pagenavi翻页插件,几乎是wordpress博客必装的插件,也是普及率很高的一款插件。

虽然网上有如何把wp-pagenavi插件集成到wordpress主题的教程,但wp-pagenavi插件函数代码拖沓,只是变相启用插件而已,并没有真正脱离wp-pagenavi插件。下面一段轻量级的函数,加上寥寥数行css样式就可以完全替代分页插件了。

具体实现方法:

首先将下面一段函数代码添加到主题的functions.php模板文件中:

  1. function pagination($query_string){   
  2. global $posts_per_page$paged;   
  3. $my_query = new WP_Query($query_string .“&posts_per_page=-1”);   
  4. $total_posts = $my_query->post_count;   
  5. if(empty($paged))$paged = 1;   
  6. $prev = $paged – 1;   
  7. $next = $paged + 1;   
  8. $range = 2; // only edit this if you want to show more page-links   
  9. $showitems = ($range * 2)+1;   
  10.   
  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 href='”.get_pagenum_link(1).“‘>最前</a>”:“”;   
  15. echo ($paged > 1 && $showitems < $pages)? “<a href='”.get_pagenum_link($prev).“‘>上一页</a>”:“”;   
  16.   
  17. for ($i=1; $i <= $pages$i++){   
  18. if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged$range-1) || $pages <= $showitems )){   
  19. echo ($paged == $i)? “<span class=’current’>”.$i.“</span>”:“<a href='”.get_pagenum_link($i).“‘ class=’inactive’ >”.$i.“</a>”;   
  20. }   
  21. }   
  22.   
  23. echo ($paged < $pages && $showitems < $pages) ? “<a href='”.get_pagenum_link($next).“‘>下一页</a>” :“”;   
  24. echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? “<a href='”.get_pagenum_link($pages).“‘>最后</a>”:“”;   
  25. echo “</div>n”;   
  26. }   
  27. }  

接下来用下面的代码替换原来模板中默认翻页代码或分页插件代码:

  1. <?php pagination($query_string); ?>  

最后再把下面的样式代码添加到style.css中,刷新一下页面,与使用插件实现的翻页效果一样。

  1. .pagination{   
  2. line-height:23px;   
  3. }   
  4. .pagination span, .pagination a{   
  5. font-size:12px;   
  6. margin2px 6px 2px 0;   
  7. background:#fff;   
  8. border:1px solid #e5e5e5;   
  9. color:#787878;   
  10. padding:2px 5px 2px 5px;   
  11. text-decoration:none;   
  12. }   
  13. .pagination a:hover{   
  14. background#8391A7;   
  15. border:1px solid #fff;   
  16. color:#fff;   
  17. }   
  18. .pagination .current{   
  19. background#fff;   
  20. border:1px solid #8d8d8d;   
  21. color:#393939;   
  22. font-size:12px;   
  23. padding:2px 5px 2px 5px;   
  24. }  

上面的样式是我目前用的主题样式,根据不同的主题修改一下边框与背景,基本就可以了,之后删除分页插件。

大熊wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为2000多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。大熊wordpress能坚持多年,是因为我们一直诚信。我们明码标价(wordpress做网站需要多少钱),从不忽悠任何客户,我们的报价宗旨:“拒绝暴利,只保留合理的利润”。如果您有网站建设、网站改版、网站维护等方面的需求,请立即咨询右侧在线客服或拨打咨询热线:18324743309,我们会详细为你一一解答你心中的疑难。

相关文章

写给所有做网站的朋友的一封信

写给所有做网站的朋友的一封信

现在就开始执行“1+N”互联网推广和没有开始执行的人,一两天看不出任何区别; 一两个月看来差异也是微乎其微的;但在2-5年的长远时间来看的时候,你的高质量询盘不断增加,你的互联网资产已经建立完成,对手已经很难匹敌,现在你看到这段文字的时候就是最好的开始,现在就是最好的时候,马上开始“1+N”体系的整体互联网推广吧,我们和你一起,开创互联网大未来!

点击查看详情

准备开启WordPress网站建设推广?

我们相信高端漂亮的网站不应该是昂贵的,这就是wordpress对每个人都是免费的原因
wordpress建站免费入门,并提供价格合理的wordpress建站套餐。