非插件实现 WordPress 分页导航

LMS
1.5K+ 13

wp-pagenavi这个插件相信用wordpress的没有不知道,我以前也一直用它,后来不知道怎么的就没在激活了,一直用wordpress自带的“较早文章”和“最近文章”,虽然不大好看,但功能也是足够用的了。

后来在一个偶然的机会,也看到了一个非插件用代码实现导航的文章,不过看博主自己用的有些缺陷,比如不管是不是在第一页都会显示“最前页”和“第一页”,最后一页也是,所以就没有怎么在意。不过这次在木木同学那看到的以下版本的非插件实现分页导航貌似没有上面说的问题(效果可以到他博客上看),值得推荐。

一、添加功能代码至 functions.php(的php循环内),自定义分页函数。

function par_pagenavi($range = 9){
        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++){echo "<a href='" . get_pagenum_link($i) ."'";
                if($i==$paged)echo " class='current'";echo ">$i</a>";}}
    elseif($paged >= ($max_page - ceil(($range/2)))){
                for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
                if($i==$paged)echo " class='current'";echo ">$i</a>";}}
        elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
                for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}}
    else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
    if($i==$paged)echo " class='current'";echo ">$i</a>";}}
        next_posts_link(' 下一页 ');
    if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}}
}

二、在主题的index.php、archive.php、category.php、search.php等页面相应位置调用上面的自定义函数。

<div class="page_navi"><?php par_pagenavi(9); ?></div>

三、添加美化代码至主题style.css,可以根据自己主题需要具体修改。

.page_navi{width:100%;height:36px;line-height:36px;text-align:center;overflow:hidden;padding-top:1em;}
.page_navi a{padding:3px 8px;margin:2px;text-decoration:none;color:#888;border:1px solid #ccf;}
.page_navi a:hover,.page_navi a.current{border:1px solid #356aa0;color:#356aa0;font-weight:bolder;}

OK,大功造成!

THE END

评论 13

  1. mm
    🏅

    谢谢,能用

    之前找的都不顺利,你这个行 :lol: :lol: :lol:

  2. andy
    🏅

    用你的代码终于实现了分页导航,下午参考的好几篇文章都没能实现。

  3. 求索阁
    🏅🏅

    博主,推荐一下你现在使用的啥代码高亮插件啊~~很美观~!

  4. 一心而已
    🏅

    懒得去折腾了 直接插件搞定了

  5. 林木木
    🏆🏆

    挖哈,还有板凳坐,不错不错~

  6. SorryDreams
    🏅

    wp应当把分页放到默认功能里。

    1. 这也许就是为什么wp可恨又可爱的地方吧。。。

  7. 万戈
    🏆🏅

    这个我也是用非插件的方法

  8. m@rk
    🏆🏆

    你和Sherry一起做的那个WP主题太漂亮了。
    :cry:

    1. 可是她貌似一直对我那个黑不溜休的lms情有独钟啊 :grin:

发表评论

Submit