越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,本站目前的新主题基本实现了零插件。网上不使用插件实现WordPress功能的文章也很多,之前我也写过WordPress相关日志函数一文,今天再补一个不使用插件实现翻页功能的函数代码。
WordPress默认翻页功能很弱,一页页翻,弄到你手麻,所以类似wp-pagenavi翻页插件,几乎是WordPress博客必装的插件,也是普及率很高的一款插件。
虽然网上有如何把wp-pagenavi插件集成到WordPress主题的教程,但wp-pagenavi插件函数代码拖沓,只是变相启用插件而已,并没有真正脱离wp-pagenavi插件。下面一段轻量级的函数,加上寥寥数行css样式就可以完全替代分页插件了。
具体实现方法:
首先将下面一段函数代码添加到主题的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 ($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";
- }
- }
接下来用下面的代码替换原来模板中默认翻页代码或分页插件代码:
- <?php pagination($query_string); ?>
最后再把下面的样式代码添加到style.css中,刷新一下页面,与使用插件实现的翻页效果一样。
- .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;
- }
上面的样式是我目前用的主题样式,根据不同的主题修改一下边框与背景,基本就可以了,之后删除分页插件。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!





浙江省杭州市 51F
很明了很好用!
安徽省合肥市 52F
博主很强大。。这主题做的真心很不错
广西柳州市 53F
好东西!谢谢分享了!
广东省佛山市 54F
鸟哥 请问怎么改成 发表的文章数 超过5就分页啊
我想把它改成文章数超过5就分页
怎么改呀?
急求 谢了
B1
@ jay 后台—设置—-阅读—博客页面至多显示 5篇文章 OK
湖北省孝感市 55F
很好 很强大!!!!!
四川省巴中市 56F
本来想试试来着,看评论问题很多啊,不知道博主有没有即时更新代码呢
广东省东莞市 57F
我的网站分页从第三页开始就提示说找不到页面,不知道怎么回事,网址 http://mirabbit.com
广东省东莞市 58F
非常好,已解决!谢谢分享
安徽省合肥市 59F
鸟哥,你好,我的显示不了最前和最后,是为什么呢。
如果替换这两个,连上一页下一页都没有呢,只有数字,帮忙看看,谢谢
我的主题是Prower4
安徽省合肥市 B1
@ lu8010252 是不是需要很多日志才有最前最后呢?我现在只有10篇两页
安徽省合肥市 B2
@ lu8010252 抱歉,鸟哥,已经弄好了,因为我的页数太少,谢谢了
辽宁省大连市 60F
有一点遗憾的地方,为了取得总件数,需要把所有符合条件的数据都检索出来,效率不高
福建省南平市 B1
@ johnsonshu 同意你的看法,我也是因为这个问题在网上搜索进来的,没使用之前,加载速度为:0.437秒左右,使用之后,加载速度为:0.737秒左右。可以说慢了一倍。不知道还有没有什么更效率的方法。
河北省石家庄市 61F
想问一下鸟哥从哪里可以学习一些HTML和DIV+CSS的知识,能推荐一下吗?谢啦!
B1
@ 李梓朋 网上教程很多的,可以先看看这个比较基础的视频教程:
http://www.enet.com.cn/eschool/video/cpcss/
DIV+CSS其实很简单的,多动手试试就行了
另外还可以看看这篇:
https://zmingcx.com/wordpress-theme-modify-tutorial.html
湖北省武汉市 B2
@ 知更鸟 freemoban.com 这个里面有div+css知识
新疆乌鲁木齐市 62F
1、我首页底下的那4个分类的图片我要给他们指定固定图片,而不是文章里边的图片;或者直接不要显示图片最好
2、我首页左上角的那个图片框只让他显示我指定的一些图片,而不是随机图片。
我该怎么做?有没有什么连接文档给推荐下看看也行
谢谢~
B1
@ yallonking 你的所有问题,主题使用说明都有
吉林省长春市 63F
有没有像http://www.aiken-snap.com/snap/no-027/ 这个分页链接以 目标页 的缩略图显示的??
北京市 64F
$my_query = new WP_Query($query_string .”&posts_per_page=-1″);
数据量太大 内存会紧张
要调整下取post_count的策略
广东省中山市 B1
@ cc 这个要怎样改进啊。。我正正有这个问题。。
广东省中山市 B1
@ cc 亲。。数据量大时。。WP_Query怎样解决呢。
山西省吕梁市 65F
大大,这个可不可以用于 长文章用 nextpage 分页后,下面导航样式呢,如果可以,该怎么设置,如果不可以,有木有可以设置的方法。。。
求大大解答下啦
湖北省仙桃市 66F
那么你这个主题里面默认翻页代码或分页插件代码是哪里呢 我对这不精通的,
福建省宁德市 67F
谢谢分享
浙江省嘉兴市 68F
不知道什么原因,按你的方法不行,网站都打不开
北京市 69F
我的也是,提示错误。
福建省福州市 70F
鸟哥。换了个新主题,用这个分页代码出现一个BUG。就是在分类栏目下面总页数和在page页面下的总页数相同。然后就出现在分类栏目下点击最后一页出现404…求助。。
广东省深圳市 71F
我试了,根本没用啊。怎么回事?
澳门 72F
請問$query_string這個變量怎樣來的?
甘肃省天水市 73F
嘿嘿 这个真的很好
上海市 74F
这个插入到哪里呢???
用的是默认的主提Twenty Twelve
江苏省南京市 75F
00iiii个
四川省成都市 76F
正好用上!设置一次显示多页怎么办?
重庆市 77F
我正在找哦,这个还没有用过
山东省济南市 78F
这个使我网站速度慢了一倍
四川省成都市 79F
还没有摸清楚,模板定制自己做但不知道怎么套进到系统里。
贵州省 80F
感谢分享,正在寻找!
江西省南昌市 81F
根本看不懂,我也不知道从哪插入
浙江省杭州市 82F
分页链接是page/2 但是页面显示404啊
浙江省杭州市 83F
谢谢楼主分享,希望能用在我的网站上
浙江省杭州市 84F
sdfdsf 梵蒂冈和返回
云南省昆明市西山区 85F
由于需要,我在边栏的内容使用了分页,之后带来一个问题,主页面的分页和边栏的分页会一起同步翻页,例如我在边栏点第二页,主页面也会跟着翻到第二页,请问这要如何解决?
B1
@ tata 想实现你说的功能,需要用到AJAX方面的技术,无刷新加载文章
上海市 86F
鸟哥,能在单独的页面中添加这个吗,我那个一个页面中加了好多东西,想弄个分页
来自外部的引用