A-A+
wordpress 纯代码实现博客分页功能
wordpress 是没有提供分页代码的,只有我们在制作主题的时候自己去扩展,想要省劲的童鞋可以直接安装插件,wordpress 分页插件还是要推荐 WP-PageNavi的,这款插件设置较简单,代码量也不是很多,是大多博客的选择,但我是个不爱装太多插件的 wper,wordpress 想要实现什么功能往往有两个版本,一个是插件,另一个就是代码了,这里主要介绍一下用纯代码如何实现 wordpress 的分页功能。
先来看一下实现 wordpress 分页的函数代码:
//分页函数 function wp_pagenavi($range = 5){ global $paged, $wp_query; if ( !$max_page ) { $max_page = $wp_query->max_num_pages; } if($max_page > 1){ if(!$paged){ $paged = 1; } if($paged != 1){ echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> ? </a>"; } previous_posts_link(' ? '); if($max_page > $range){ if($paged < $range){ for($i = 1; $i <= ($range + 1); $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } elseif($paged >= ($max_page - ceil(($range/2)))){ for($i = $max_page - $range; $i <= $max_page; $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){ for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } } else{ for($i = 1; $i <= $max_page; $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } next_posts_link(' ? '); if($paged != $max_page){ echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> ? </a>"; } } }
仔细看这段分页函数就会发现在许多主题模板中都有这个函数,没错,是有这个函数,这是大都博客都整合的分页功能,我们将这段函数加入到主题 functions.php 文件。
然后再找到需要分页的模板文件,找到如下的参数代码:
next_posts_link
previous_posts_link
两个参数替换成如下代码:
<?php wp_pagenavi(); ?>
现在再去看一下是否已经实现了分页功能了呢。