无插件实现WordPress分页导航功能
最近比较喜欢折腾,今天又折腾了快一天。现在追求速度,必然要对进行优化。看看插件还是比较多的,但一直觉得WP-PageNavi插件实现的WordPress分页导航是个小功能,没必要用插件形式实现。所以在网上挖了很多代码,试了好几个,就下面这个还是比较理想,并根据inove主题进行适当修改,至于出处,我也想不想在哪里找的,所以共享吧。
用代码替换WP-PageNavi插件实现WordPress分页导航功能的具体方法:
第一步:将下面一段函数代码添加到主题的functions.php文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function kriesi_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"; } } |
第2步:用下面前台调用的代码:
<?php kriesi_pagination($query_string); ?>
替换主题下的index.php和archive.php中的默认翻页代码或分页插件代码:
<div id="pagenavi"> <?php if(function_exists('wp_pagenavi')) : ?> <?php wp_pagenavi() ?> <?php else : ?> <span class="newer"><?php previous_posts_link(__('Newer Entries', 'inove')); ?></span> <span class="older"><?php next_posts_link(__('Older Entries', 'inove')); ?></span> <?php endif; ?> <div class="fixed"></div> </div>
第3步:再把下面的样式代码添加到style.css中,使分页键有比较好看的外观。
/*page navigation*/ .pagination{ line-height:23px; background:url(img/icons.gif) 0 -272px no-repeat; padding-left:22px; float:left; } .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; }
无插件实现WordPress分页导航功能其实很简单,前辈们都已给出代码,只要有折腾精神就行。另外特别提醒,折腾前对文件要备份,以防万一。
转载请注明 转自: 迷走映像丨无插件实现WordPress分页导航功能
避免一下插件其实是有好处的,但是一句“替换inove主题下”就把整篇帖子给锁定范围了。。。。
[Reply]
@ A.L
灰常有道理,决定修改之,谢谢提醒。
[Reply]
[Reply]
非常感谢。。我的网站有导航了。。

[Reply]
可是在自己机子可以。。传到网站就不行了。。郁闷。。
[Reply]