WordPress4分页

巴扎黑
发布: 2016-11-10 09:16:16
原创
1235人浏览过

入门菜鸟,希望能给和菜鸟相互取暖 

最近在改造wordpress,自己写代码做了个分页 
1,在自己主题下的style.css中增加如下css 

Js代码  

.pagination {
    width: auto;
    display: block;
    text-align: center;
    margin: 30px;
}
.pagination a {
    background-color: #eee;
    text-decoration: none;
    color: #999;
    font-size: 18px;
    padding: 0px 10px;
    line-height: 32px;
    height: 32px;
    margin: 0px 0.5px;
}
.pagination a.page-btn {
    width: 40px;
}
.pagination a.page-btn .icon-prev {
    position: absolute;
    width: 0px;
    height: 0px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-left: none;
    border-right: 6px solid #999;
    left: 50%;
    margin-left: -3px;
    top: 50%;
    margin-top: -6px;
    -webkit-transition: all 0.1s ease;
    transition: all 0.1s ease;
}
.pagination a.page-btn .icon-next {
    position: absolute;
    width: 0px;
    height: 0px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-right: none;
    border-left: 6px solid #999;
    left: 50%;
    margin-left: -3px;
    top: 50%;
    margin-top: -6px;
    -webkit-transition: all 0.1s ease;
    transition: all 0.1s ease;
}
.pagination a:hover {
    color: #fff;
}
.pagination a:hover .icon-prev {
    width: 0px;
    height: 0px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-left: none;
    border-right: 6px solid #fff;
}
.pagination a:hover .icon-next {
    width: 0px;
    height: 0px;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-right: none;
    border-left: 6px solid #fff;
}
.pagination span {
    display: inline-block;
    margin: 0px 1px;
    color: #adadad;
    font-size: 18px;
}
登录后复制

2, 将如下代码copy到自己theme的functions.php中, 

Php代码  

/**
/**
 * @param int $total_pages
 *  总页数
 * @param int $paged
 *  当前页数从1计
 * @param int $visible_count
 *  可见的页码数,接受自定义,如果自定义小于1或者大于max,置为max
 *
 *@author shandaiwang
 */
define('MAX_VISIBLE_PAGE_COUNT', 20);
function pagination($total_pages = 0, $current_page = 1, $visible_count = MAX_VISIBLE_PAGE_COUNT){
    // 入参适配
    if($total_pages <= 1) {
        return;
    }
    if($current_page <= 0) {
        $current_page = 1;
    }
    if($visible_count <= 0 || $visible_count > MAX_VISIBLE_PAGE_COUNT) {
        $visible_count = MAX_VISIBLE_PAGE_COUNT;
    }
    // 入参适配结束
    // 页码列表适配
    $range = ceil(($visible_count + 1) / 2);
    $start = $current_page - $range + 1;
    if($start < 1) {
        $start = 1;
    }
    $end = $start + $visible_count - 1;
    if ($end > $total_pages) {
        $end = $total_pages;
        // 向前反推,尽可能使显示个数为$visible_count
        $start = $end - $visible_count + 1;
        if($start < 1) {
            $start = 1;
        }
    }
    // 页码列表适配结束
    // 渲染
    echo "<div class='pagination'>";
    if($current_page > 1) { // pre
        echo('<a href="'.get_pagenum_link($current_page - 1).'" class="common-btn page-btn"> <div class="icon-prev"></div></a>');
    }
    if($start != 1) {   // first[...]
        echo('<a href="'.get_pagenum_link(1).'" class="common-btn">1</a>');
        if ($start != 2) {
            echo('<span>...</span>');
        }
    }
    for ($i=$start; $i <= $end; $i++){  // list
        if ($i == $current_page) {
            echo('<a href="javascript:;" class="common-btn active">'.$i.'</a>');
        } else {
            echo('<a href="'.get_pagenum_link($i).'" class="common-btn">'.$i.'</a>');
        }
    }
    if($end < $total_pages) {   //[...]last
        if ($end + 1 < $total_pages) {
            echo('<span>...</span>');
        }
        echo('<a href="'.get_pagenum_link($total_pages).'" class="common-btn">'.$total_pages.'</a>');
    }
    if($current_page < $total_pages) { // next
        echo('<a href="'.get_pagenum_link($current_page + 1).'" class="common-btn page-btn"> <div class="icon-next"></div></a>');
    }
    echo "</div>\n";
}
登录后复制

3,在需要的地方引用即可,形如 


 6f981d79-c23e-3bdc-8503-da23907125a0.png

至于如何获得$total_pages, $current_page,我用的WP query,形如

b6a2a001-186e-338f-837f-bf7fa1a1a6f4.png 

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号