![]() |
wordpress 实现分类页分页功能
wordpress 默认翻页功能很弱,一页页翻,弄到你手麻,所以类似wp-pagenavi翻页插件,几乎是WordPress博客必装的插件,也是普及率很高的一款插件。虽然网上有如何把wp-pagenavi插件集成到wordpress主题的教程,但wp-pagenavi插件函数代码拖沓,只是变相启用插件而已,并没有真正脱离wp-pagenavi插件。下面一段轻量级的函数,加上寥寥数行CSS样式就可以完全替代分页插件了。
分类页分页实现方法: 首先将下面一段函数代码添加到主题的functions.php模板文件中: 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"; } } 接下来用下面的代码替换原来模板中默认翻页代码或分页插件代码: <?php kriesi_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; } |
| All times are GMT +8. The time now is 06:05 AM. |
Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.