A-A+

wordpress 纯代码实现博客分页功能

2015年03月11日 PHP开源系统 暂无评论 阅读 22 views 次

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(); ?>

现在再去看一下是否已经实现了分页功能了呢。

标签:

给我留言