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

知更鸟
知更鸟
知更鸟
1633
文章
6930
评论
2010年3月17日22:19:2312460.2K41

越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,本站目前的新主题基本实现了零插件。网上不使用插件实现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. }  

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

weinxin
版权声明
本站原创文章转载请注明文章出处
WordPress 删除xmlrpc.php防DDOS攻击 WordPress

WordPress 删除xmlrpc.php防DDOS攻击

可能很多WordPress用户都不知道这个xmlrpc.php是什么,简单地说就是Wordpress 为手机等客户端提供的接口文件,早期的Wordpress 这个接口就是个万恶之源,虽然经过多次的升级...
WordPress 5.6.1 维护更新 WordPress

WordPress 5.6.1 维护更新

WordPress 5.6.1 维护更新,修复20个错误及7个区块编辑器问题,无安全更新,中文版同期发布。 看了一下更新日志,只有少数几个程序的错误,基本都是修正默认主题的错误。 该版本是一个短周期维...
登录用户显示不同的 WordPress 菜单 WordPress

登录用户显示不同的 WordPress 菜单

如果让登录用户与未登录浏览者,显示不同的菜单,可以通过下面的代码实现: 登录用户显示不同的 WordPress 菜单 将下面代码添加到当前主题函数模板functions.php中: if( is_us...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:124   其中:访客  97   博主  14   引用   13
    • Jinwen Jinwen 0

      很好的教程呢,谢谢分享的。

      • 小O 小O 1

        主题真漂亮。

        • Elanse Elanse 2

          请问版主 THEME 中的 Quarx 首页的大幻灯片如何添加自定义代码 我的老显示不出来 添加Image

            • 知更鸟 知更鸟

              @ Elanse 主题站上说明没看懂?主题包中有添加缩略图的说明,英文如果和我一样差,看图片说明就够了,另外如果你用的空间是WIN主机,就放弃使用这款主题吧

                • 客官 客官 0

                  @ 知更鸟 为什么添加后, 上一页下一页 最后 最前 是乱码啊。

                    • 知更鸟 知更鸟

                      @ 客官 是编码错误,中文模版为UTF-8,无BOM

                        • 轻舞飞扬 轻舞飞扬 1

                          @ 知更鸟 你好 我想问下 为什么我用这代码 上一页 下一页 尾页 首页 这部分都显示不出来

                          • liu liu 0

                            @ 轻舞飞扬 你的显示出来了吗

                            • 轻舞飞扬 轻舞飞扬 1

                              @ 知更鸟 那鸟哥 在请问一下 我直接把你的代码放在functions.php 这个页面中的 请问怎么设置 编码 和无BOM呢? 谢谢

                        • 伊星晴 伊星晴 0

                          @ Elanse 这个能够在自定义模板中使用吗?我试了下,页数和链接都能出现,但是点击上一页和下一页时页面没有变化,并没有跳转到相应的页面去。。。。这是怎么回事呢

                            • 大拇指 大拇指 0

                              @ 伊星晴 我也是同样的问题

                          • 8路杂讯 8路杂讯 4

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

                            这段代码在哪个文件里啊?

                              • 知更鸟 知更鸟

                                @ 8路杂讯 一般在archive.php index.php文件中,
                                比如WP默认模板是:
                                < ?php next_posts_link(__('« Older Entries', 'kubrick')) ?>
                                < ?php previous_posts_link(__('Newer Entries »', 'kubrick')) ?>

                              • leesum leesum 1

                                这方法不错,一会去折腾下

                                • Skyoy Skyoy 1

                                  $range = 2; 我改成5之后,在category分类里面,选择最后一页,是没有内容的,甚至选择倒数的几页,也是空白的哦。。请问怎么修改呢? 谢谢

                                    • Skyoy Skyoy 1

                                      @ Skyoy 额 原来是判定的数值问题哦。因为我在archive.php下面是8篇,在后台阅读的是6篇。可上门的函数只调用后台默认的。

                                    • pazz7ven pazz7ven 0

                                      这样做会不会拖慢速度?刚从引擎上点你的文章一直显示 在加载中

                                        • 知更鸟 知更鸟

                                          @ pazz7ven 对我用的主题来说,没有加载任何多余的东西,所以不会影响速度

                                        • charger charger 2

                                          如果单日志实现分页..怎么弄呢..请教一下..

                                            • 知更鸟 知更鸟

                                              @ charger 又是同一个问题,编辑文章时切换到代码模式,在分页处加{!–nextpage–} ,把{}换成<>

                                                • charger charger 2

                                                  @ 知更鸟 额.大哥..那如果我没采用你的方法..还是用插件.能不能插入nextpage标签?我试了好像不行..有没其他办法?

                                                    • 知更鸟 知更鸟

                                                      @ charger 没听说日志分页还有插件,主题不支持分页插入标签也没用

                                                • 亿品元素 亿品元素 3

                                                  插件是越少越好啊!

                                                  • 百奥博 百奥博 1

                                                    wp折腾去掉plugin,其乐无穷

                                                    • unnamed unnamed 0

                                                      我用这个主题做了个博客,为何没有分页呢?
                                                      我的函数是function pagination($query_string)
                                                      在index.php这个文件中的调用是:

                                                      为何没有效果呢?

                                                      • poco poco 2

                                                        这个如果在单独的页面加入貌似不显示分页

                                                        尝试了好几次都没用

                                                        • 百佳资讯 百佳资讯 0

                                                          很好的方法呢,先收藏了

                                                          • 土野鲜 土野鲜 3

                                                            收藏

                                                            • .安小轩 .安小轩 0

                                                              这个要放在哪里吖?

                                                              • 老衲 老衲 1

                                                                用了下 效果很好

                                                                • citier citier 3

                                                                  这个刚好看过,百度又进来啦,看样子不用百度了,直接在鸟哥站里搜就的了

                                                                  • wzj890711 wzj890711 1

                                                                    博主好,最近更新了你的HotNews pro2.5主题,貌似2.5的主题已经集成了这篇文章里的分页代码,但是代码显示的效果不是很好,只能显示前几页的页码(1~7),超过7的页码都要点击“下一页”才能看到,而且最大页码也不显示再首页上,看着不是很舒服。

                                                                    之前使用2.4没有这个问题,那是我还是用得wp-pagenavi分页导航插件,但是更新2.5后插件启用没反应,而且我发现你的博客分页导航和这篇文章的代码不一样啊,想问一下现在怎么在2.5的主题里去掉你这个翻页的效果还原成原来的?上面说替换的代码没有找到额。。。

                                                                      • wzj890711 wzj890711 1

                                                                        @ wzj890711 现在我把“$range = 20; // 修改数字,可以显示更多的分页链”改成了20页现在可以显示全部页数了,但是翻页插件还是用不了,求帮助~~~

                                                                      • ryan ryan 0

                                                                        if(emptyempty($paged))$paged = 1; 博主的这行代码,貌似只要一个empty的函数吧

                                                                        • 广州seo 广州seo 1

                                                                          代码不错,拿来用了。。不过第5行写错了。。。

                                                                          if(emptyempty($paged))$paged = 1;

                                                                          应该是

                                                                          if(empty($paged))$paged = 1;

                                                                          • Poor Poor 1

                                                                            请教个问题。 我弄的分页点击页码以后上面的URL看到的是已经转过去了。 但是页面的内容还是第一页的。 也就是说始终显示第一页的内容? 这个怎么解决? 望指教。

                                                                            • Poor Poor 1

                                                                              用你的这个代码页是一样。

                                                                              • toptpe toptpe 3

                                                                                请问代码添加在style。css的哪个位置啊?我是超级菜鸟啊!

                                                                                  • 知更鸟 知更鸟

                                                                                    @ toptpe 加到最后

                                                                                      • toptpe toptpe 3

                                                                                        @ 知更鸟 呵呵,感谢的五体投地,以后在CSS,我都知道加到最后了啊

                                                                                    • toptpe toptpe 3

                                                                                      直接复制代码,前面怎么还带着123456789等数字呢

                                                                                      • toptpe toptpe 3

                                                                                        1.function kriesi_pagination($query_string){
                                                                                        这段代码放在FUNCTION.PHP的哪个位置啊?原谅我是超级菜鸟啊

                                                                                          • 知更鸟 知更鸟

                                                                                            @ toptpe 加到functions中最后一个“?>”上面

                                                                                              • toptpe toptpe 3

                                                                                                @ 知更鸟 感谢鸟哥仔细的解答,搞定了!

                                                                                            • 25lw 25lw 0

                                                                                              老大我的按照您的方法加上了
                                                                                              但是翻页好像不能用
                                                                                              只能实现翻页一次
                                                                                              第二次就无法翻页了,一直停留在第一次翻页后的页面
                                                                                              求解答啊
                                                                                              或者方法发到我邮箱
                                                                                              在此表示感谢了……

                                                                                              • 猪猪侠 猪猪侠 0

                                                                                                鸟哥,能不能实现 分页标题 呀! 这样对优化好点呀!

                                                                                                • kay kay 0

                                                                                                  这个方法很不错

                                                                                                  • lemon lemon 0

                                                                                                    鸟哥,我的代码是这样该替换哪里啊?
                                                                                                    max_num_pages;
                                                                                                    if ( $total_pages > 1 ) {
                                                                                                    echo ”;
                                                                                                    posts_nav_link(‘ | ‘, __(‘« Previous page’,’zbench’), __(‘Next page »’,’zbench’));
                                                                                                    echo ”;
                                                                                                    }
                                                                                                    }
                                                                                                    ?>

                                                                                                    • 童佳倩 童佳倩 3

                                                                                                      发现原来鸟哥是如此的历害角色,直接拿来用,稍改了下CSS颜色就OK了,

                                                                                                        • 知更鸟 知更鸟

                                                                                                          @ 童佳倩 你在哪看过一样的代码?

                                                                                                            • 童佳倩 童佳倩 3

                                                                                                              @ 知更鸟 鸟哥,误会误会~~真不好意思啦,我没有表达清楚,其实我是说我直接把你的代码拿来用了,不是说你拿别人的,,,,,,,抱歉啦!

                                                                                                          • andychow1989 andychow1989 2

                                                                                                            从您这儿学到了不少呢 加油 继续支持

                                                                                                            • WILDHORDE WILDHORDE 0

                                                                                                              经过仔细研究和不断尝试。终于成功分页了。感谢楼主的代码。回头修改CSS

                                                                                                              • 多特 多特 1

                                                                                                                问个问题啊,用的这个分页代码,原来首页是8篇文章每页,总页数是21,后来我改到每页12篇了,总页数还是21,后面几页全是空的,然后写几篇文章增加了一页后,总页数变成22,后边4页还是空的,这个问题怎么解决啊

                                                                                                                • 衣@佳人 衣@佳人 0

                                                                                                                  我也来试试

                                                                                                                  • 美胸秀身社 美胸秀身社 0

                                                                                                                    学习了 感谢博主的分享

                                                                                                                    • 同爱99 同爱99 0

                                                                                                                      现在这代码还能用吗?

                                                                                                                      • 九级木匠 九级木匠 0

                                                                                                                        你好,我用这段代码了,可是,连标签页面,page页面显示分页有问题。比如首页文章比较多,显示的两页,没问题,但是标签页面也是显示两个页面,第二页就是404。怎么解决,谢谢啊

                                                                                                                        • 轻舞飞扬 轻舞飞扬 1

                                                                                                                          鸟哥 你好 我想问下 为什么我用这代码 上一页 下一页 尾页 首页 这部分都显示不出来 其它都正常

                                                                                                                          • 黑米粥 黑米粥 0

                                                                                                                            过来学习一下了

                                                                                                                            • 爱罅 爱罅 1

                                                                                                                              我使用了这个方法,但是一用,页面就窜了

                                                                                                                              • ticmy ticmy 0

                                                                                                                                很明了很好用!

                                                                                                                                • 缺水的孩子 缺水的孩子 0

                                                                                                                                  博主很强大。。这主题做的真心很不错

                                                                                                                                  • 洪伟博客 洪伟博客 1

                                                                                                                                    好东西!谢谢分享了!

                                                                                                                                    • jay jay 1

                                                                                                                                      鸟哥 请问怎么改成 发表的文章数 超过5就分页啊

                                                                                                                                      我想把它改成文章数超过5就分页

                                                                                                                                      怎么改呀?

                                                                                                                                      急求 谢了

                                                                                                                                        • 知更鸟 知更鸟

                                                                                                                                          @ jay 后台—设置—-阅读—博客页面至多显示 5篇文章 OK

                                                                                                                                        • 淘宝刷钻 淘宝刷钻 1

                                                                                                                                          很好 很强大!!!!!

                                                                                                                                          • zi zi 1

                                                                                                                                            本来想试试来着,看评论问题很多啊,不知道博主有没有即时更新代码呢

                                                                                                                                            • 风语 风语 0

                                                                                                                                              我的网站分页从第三页开始就提示说找不到页面,不知道怎么回事,网址 http://mirabbit.com

                                                                                                                                              • 中文吧 中文吧 0

                                                                                                                                                非常好,已解决!谢谢分享

                                                                                                                                                • lu8010252 lu8010252 1

                                                                                                                                                  鸟哥,你好,我的显示不了最前和最后,是为什么呢。

                                                                                                                                                  如果替换这两个,连上一页下一页都没有呢,只有数字,帮忙看看,谢谢
                                                                                                                                                  我的主题是Prower4

                                                                                                                                                    • lu8010252 lu8010252 1

                                                                                                                                                      @ lu8010252 是不是需要很多日志才有最前最后呢?我现在只有10篇两页

                                                                                                                                                        • lu8010252 lu8010252 1

                                                                                                                                                          @ lu8010252 抱歉,鸟哥,已经弄好了,因为我的页数太少,谢谢了

                                                                                                                                                      • johnsonshu johnsonshu 0

                                                                                                                                                        有一点遗憾的地方,为了取得总件数,需要把所有符合条件的数据都检索出来,效率不高

                                                                                                                                                          • machealx machealx 0

                                                                                                                                                            @ johnsonshu 同意你的看法,我也是因为这个问题在网上搜索进来的,没使用之前,加载速度为:0.437秒左右,使用之后,加载速度为:0.737秒左右。可以说慢了一倍。不知道还有没有什么更效率的方法。

                                                                                                                                                          • 李梓朋 李梓朋 3

                                                                                                                                                            想问一下鸟哥从哪里可以学习一些HTML和DIV+CSS的知识,能推荐一下吗?谢啦!

                                                                                                                                                              • 知更鸟 知更鸟

                                                                                                                                                                @ 李梓朋 网上教程很多的,可以先看看这个比较基础的视频教程:
                                                                                                                                                                http://www.enet.com.cn/eschool/video/cpcss/
                                                                                                                                                                DIV+CSS其实很简单的,多动手试试就行了
                                                                                                                                                                另外还可以看看这篇:
                                                                                                                                                                https://zmingcx.com/wordpress-theme-modify-tutorial.html

                                                                                                                                                              • yallonking yallonking 0

                                                                                                                                                                1、我首页底下的那4个分类的图片我要给他们指定固定图片,而不是文章里边的图片;或者直接不要显示图片最好
                                                                                                                                                                2、我首页左上角的那个图片框只让他显示我指定的一些图片,而不是随机图片。

                                                                                                                                                                我该怎么做?有没有什么连接文档给推荐下看看也行
                                                                                                                                                                谢谢~

                                                                                                                                                                • n n 0

                                                                                                                                                                  有没有像http://www.aiken-snap.com/snap/no-027/ 这个分页链接以 目标页 的缩略图显示的??

                                                                                                                                                                  • cc cc 0

                                                                                                                                                                    $my_query = new WP_Query($query_string .”&posts_per_page=-1″);
                                                                                                                                                                    数据量太大 内存会紧张
                                                                                                                                                                    要调整下取post_count的策略

                                                                                                                                                                      • 安宇雨 安宇雨 1

                                                                                                                                                                        @ cc 这个要怎样改进啊。。我正正有这个问题。。

                                                                                                                                                                        • 安宇雨 安宇雨 1

                                                                                                                                                                          @ cc 亲。。数据量大时。。WP_Query怎样解决呢。

                                                                                                                                                                        • rola rola 0

                                                                                                                                                                          大大,这个可不可以用于 长文章用 nextpage 分页后,下面导航样式呢,如果可以,该怎么设置,如果不可以,有木有可以设置的方法。。。
                                                                                                                                                                          求大大解答下啦

                                                                                                                                                                          • wild wild 1

                                                                                                                                                                            那么你这个主题里面默认翻页代码或分页插件代码是哪里呢 我对这不精通的,

                                                                                                                                                                            • 内涵漫画系列 内涵漫画系列 2

                                                                                                                                                                              谢谢分享

                                                                                                                                                                              • 经典语录 经典语录 0

                                                                                                                                                                                不知道什么原因,按你的方法不行,网站都打不开

                                                                                                                                                                                • abc abc 3

                                                                                                                                                                                  我的也是,提示错误。

                                                                                                                                                                                  • 野蛮人 野蛮人 2

                                                                                                                                                                                    鸟哥。换了个新主题,用这个分页代码出现一个BUG。就是在分类栏目下面总页数和在page页面下的总页数相同。然后就出现在分类栏目下点击最后一页出现404…求助。。

                                                                                                                                                                                    • 前端观察站 前端观察站 1

                                                                                                                                                                                      我试了,根本没用啊。怎么回事?

                                                                                                                                                                                      • hellojQuery hellojQuery 0

                                                                                                                                                                                        請問$query_string這個變量怎樣來的?

                                                                                                                                                                                        • 益达 益达 0

                                                                                                                                                                                          嘿嘿 这个真的很好

                                                                                                                                                                                          • 滑板先生 滑板先生 1

                                                                                                                                                                                            这个插入到哪里呢???
                                                                                                                                                                                            用的是默认的主提Twenty Twelve

                                                                                                                                                                                            • 00 00 1

                                                                                                                                                                                              00iiii个

                                                                                                                                                                                              • 易米代驾 易米代驾 6

                                                                                                                                                                                                正好用上!设置一次显示多页怎么办?

                                                                                                                                                                                                • 兼职网 兼职网 0

                                                                                                                                                                                                  我正在找哦,这个还没有用过

                                                                                                                                                                                                  • 百家网络博客 百家网络博客 2

                                                                                                                                                                                                    这个使我网站速度慢了一倍

                                                                                                                                                                                                    • 宜居舒适家居网 宜居舒适家居网 0

                                                                                                                                                                                                      还没有摸清楚,模板定制自己做但不知道怎么套进到系统里。

                                                                                                                                                                                                      • 黑山图书 黑山图书 0

                                                                                                                                                                                                        感谢分享,正在寻找!

                                                                                                                                                                                                        • 凤凰飞的话 凤凰飞的话 0

                                                                                                                                                                                                          根本看不懂,我也不知道从哪插入

                                                                                                                                                                                                          • solemiracle solemiracle 0

                                                                                                                                                                                                            分页链接是page/2 但是页面显示404啊

                                                                                                                                                                                                            • 握兰网 握兰网 1

                                                                                                                                                                                                              谢谢楼主分享,希望能用在我的网站上

                                                                                                                                                                                                              • ert ert 0

                                                                                                                                                                                                                sdfdsf 梵蒂冈和返回

                                                                                                                                                                                                                • tata tata 0

                                                                                                                                                                                                                  由于需要,我在边栏的内容使用了分页,之后带来一个问题,主页面的分页和边栏的分页会一起同步翻页,例如我在边栏点第二页,主页面也会跟着翻到第二页,请问这要如何解决?

                                                                                                                                                                                                                    • 知更鸟 知更鸟

                                                                                                                                                                                                                      @ tata 想实现你说的功能,需要用到AJAX方面的技术,无刷新加载文章