
开始本文之前请先阅读 WordPress 技巧:不用插件实现 Pagenavi 功能
接着是一坨广告:如果有企业要建站,推荐凶器 WP Jam
然后开始正文:
根据先阅读的那篇文章,教偶们如何用 wordpress 自带函数实现 pagenavi 功能
整完后输出的就是12344567的数字了
但还木有实现 pagenavi 的表现,也木有 左边那坨当前页面/总页面指示数
这就是为啥要写这篇文章的原因了
pagenav的缺点:多一个外挂样式表 一个http 请求是非常占速度的,可参考yslow说明书
以插件形式载入,虽然灵活,但以性能为代价
因为水煮鱼已经介绍过了,我直接就说修改的地方了,输出结果可以参考截图
第一步:在 functions.php 的 <?php 和 ?> 之间插入
function ooxx_nav(){
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => '« ',
'next_text' => ' »'
);
if( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg('s',get_pagenum_link(1) ) ) . 'page/%#%/', 'paged');
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array('s'=>get_query_var('s'));
echo '<div class="ooxx_nav"><span class="page-numbers pages">Page'.$pagination[current].' of '.$pagination[total].'</span>'.paginate_links($pagination).'</div>';
}
第二步: 在 style.css 里插入
.ooxx_nav{clear:both;margin:5px -2px;overflow:hidden;zoom:1;text-align:center;}
.ooxx_nav .page-numbers:hover{background:#FF3D86;color:#FFF;-moz-box-shadow:1px 1px 1px #DDD;-webkit-box-shadow:1px 1px 1px #DDD;box-shadow:1px 1px 1px #DDD;}
.ooxx_nav .page-numbers,
.ooxx_nav .dots:hover,
.ooxx_nav .pages:hover{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;background:#FFF;display:inline-block;float:left;height:18px;margin:2px;min-width:28px;_width:28px;padding:1px;}
.ooxx_nav .page-numbers:visited{opacity:0.5;}
.ooxx_nav .current,
.ooxx_nav .current:hover{background:#7BAFA7;color:#FFF;font-weight:bold;-moz-box-shadow:1px 1px 1px #DDD;-webkit-box-shadow:1px 1px 1px #DDD;box-shadow:1px 1px 1px #DDD;}
.ooxx_nav .pages,
.ooxx_nav .pages:hover{color:#CCC;width:120px;}
第三步: 在需要导航的适当位置,例如index.php search.php 里插入
<?php if(function_exists('ooxx_nav')) {ooxx_nav(); } ?>
要直接用的拷贝上头代码直接用即可,听解释的继续看
第一步里 function ooxx_nav() 作用就是新建一个输出页码的函数,名字随便来,当然调用的时候要对上
这里改动不大
1. 基于语义考虑<p />标签改为<div />,当然最好改成<nav />如果你已经createElement的话,哈
2. 调用变量 $pagination 数组里的当前页和总页数组重新合成左侧那坨功能
3. 左箭头和右箭头用字符实体标示一下更规范
第二步里 你可以根据自己的主题修改颜色
box-shadow 为页码数投影
border-radius 为圆角程度
-moz- firefox 私有
-webkit- chrome safari qq浏览器 maxthon 等webkit内核私有
不细说,有需求留言即可
第三步加入 function_exists() 判断 ooxx_nav() 是否存在,要是不存在也没关系
如果不加判断,天会塌下来
–update–
感谢 yun77op 找茬
'base' => @add_query_arg('page','%#%'),
应改为
'base' => @add_query_arg('paged','%#%')
少了个d,非permalinks固定连接的同学会链接失效
54 评论
添加您的 →😳 我的留言呢…
@mice, 沙发杀无赦
你那个邮件提醒中的 http://caitou.com/logo.gif
貌似还是老域名噢.
5555555 我的沙发怎么没了..
@mice, 恩,已经更新了的,谢谢
🙁 还好沙发又回来了 哇哈哈, 😳 下次留三个字,不留俩个了 👿
@mice, ❓ 稍微有营养点……
@bigCat, 😮 下次知道了..
摸一下……居然不能变大 🙁
@Leigh, 呃,没有做那个效果。。。IE下面可以方便的用zoom做,嘻嘻,其他就要用position了
看不懂 只好先收藏
努力学习天文知识
再这样下去,什么插件都可以省了。
免插件流路过
我的也是免插件
😉 好怀念以前那个晃一下就变粗҈大的效果~~ 😳
又发现新大陆了~~
大猫同志的博文果然不讲废话
能收工代码解决就收工~插件有不少后遗症
你怎么也开始搞这套了?把插件里的代码搬到function里就是免插件,罗罗嗦嗦的干啥啊。
不喜欢一切非都搞成非插件,换皮的时候太麻烦。
@lifishake, 😳 主要多个请求数很不爽啊…hack插件也麻烦…加上这个实现比较方便来着哈哈
如果是wp pagenavi 换皮肤的时候同样需要插入那坨function…
@大猫, 后边的那句是泛指.我真看不懂现在的免插件趋势.
@lifishake, 😉 折腾中会理解插件的工作原理,基于学习的目的,嘿嘿,要是基于用的爽,管他性能捏.~
系统是 Ubuntu 的?任务栏这么炫~~?喜欢
@HJin_me, 呃docky还是很赞的,但是显卡差跑不起来..
我用的是 willin 的 Mini Pagenavi,代码量也很少
@A.shun, 代码量其实不是重头,拖速度排第一的是http请求数,有个外挂样式表
@大猫, 差不多的哦,我说的那个也是免插件,也是几行样式 😆
@A.shun, 顶之 ❗
订阅了你的blog,最近想学wordpress,所以就
@MC柯, 真的想学建议别从blog开始,去看codex.wordpress.org
blog只是技巧,没有基础的,没基础你也理解不了技巧更不用说想出来啥技巧 🙂
嘿嘿!找个时间测试下,好久没动wp了~
找碴的
‘base’ => @add_query_arg(‘page’,’%#%’),
应改为base’ => @add_query_arg(‘paged’,’%#%’),
不然非永久链接用户会有麻烦, 🙂
@yun77op, 求具体麻烦,虽然偶不怎么会PHP,但是我就是固定连接啊,没见有啥子问题
@bigCat, 我说有麻烦的是那些,使用默认链接方式,$wp_rewrite->using_permalinks() 返回false的那些,他们是通过http://localhost/wordpress/?paged=2而不能http://localhost/wordpress/?page=2,不是默认链接是http://localhost/wordpress/page/2
@yun77op, 感谢,加了个update上去~
我也和博主一样使用火狐
看来要常来看看大猫了,经常发经典文章啊
第一次来,先说句无关文章的话吧,博客好漂亮啊,哈哈 😆
@mealdy, 😛 非IE浏览更赞哦
向无插件奋斗~~~尽管只是个传说~ 😛
好吧,我承认,这次我终于记得订阅这个se情站点了~ 😈
@hzlzh, 😳 传说也都是传出来的,嘿嘿,不靠谱
😯 还是插件来的实在。博主的主题华丽丽……
@junofeeng, 哈哈,蛋疼了才折腾木插件的
博主很强大,学习了
太好了,写的真不错
使用插件简单多了吧 直接激活就可以用 什么都不用修改
@插件, 呃,图的是代码的快感
收下了,拿回去研究, 😯
🙄 还需要改CSS啊,这个有点头大。
@赵福安, 哈哈,偶靠CSS吃饭
话说那个CSS代码好邪恶
不用插件 省了不少
shit,TKS,完美了,终于结束掉了一个插件。
注:我已经把邪恶的代码替换掉了
好东西啊 谢谢分类了!
Mixing sports and casino on one app makes my life so much easier. The live dealer tables feel legit and the odds are competitive. Been playing here for weeks and loving it. sportbetcasino