非插件实现WordPress分页导航

效果图:

具体的实现方法是:

1.首先在主题functions.php中加入以下代码:

if ( !function_exists('pagenavi') ) {
    function pagenavi( $p = 5 ) { // 取当前页前后各 2 页
        if ( is_singular() ) return; // 文章与插页不用
        global $wp_query, $paged;
        $max_page = $wp_query->max_num_pages;
        if ( $max_page == 1 ) return; // 只有一页不用
        if ( empty( $paged ) ) $paged = 1;
        echo '<span class="pages">' . $paged . ' / ' . $max_page . '</span> '; // 显示页数
        if ( $paged > $p + 1 ) p_link( 1, '最前页', '首页' );
	    if ( $paged > 1 ) p_link( $paged - 1, '上一页', '&lsaquo;' );/* 如果当前页大于1就显示上一页链接 */

        for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { // 中间页
            if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span> " : p_link( $i );
        }
        if ( $paged < $max_page - $p - 1 ) echo '<span class="page-numbers">...</span>';
        if ( $paged < $max_page ) p_link( $paged + 1,'下一页', '&rsaquo;' );/* 如果当前页不是最后一页显示下一页链接 */
	    if ( $paged < $max_page - $p ) p_link( $max_page, '最后页', '尾页' );

    }
   function p_link( $i, $title = '', $linktype = '' ) {
        if ( $title == '' ) $title = "第 {$i} 页";
        if ( $linktype == '' ) { $linktext = $i; } else { $linktext = $linktype; }
        echo "<a class='page-numbers' href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a> ";
    }
}

2.然后在页面相应位置,把原来的分页导航代码改成以下:

<?php if (function_exists('pagenavi')) { pagenavi(); } ?>

3.这样就已经实现了分页导航,但此时的分页导航还很难看,页码都挤在一起,所以我们需要在style.css中进行适当装饰:

.page-numbers,.pages{width:60px;line-height: 30px;height: 28px; width: 30px;text-align: center;margin-right: 5px;display: block;float: left;color: #666;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);position: relative;border-bottom:#4F8D65 1px solid;}
	span.pages{width:60px}
span.pages{width:50px;}
.page-numbers:hover{font-family: Arial, Helvetica, sans-serif;  border-top:2px solid ff00a4;}
.current,.current:hover{color:#fff;background:#45b9f6;border-top:2px solid #45b9f6;}
.page-numbers a:hover,span.current{text-decoration: none;}

具体样式可根据自己喜欢及主题修改。

本文参考资源:1.http://down.chinaz.com/try/201209/2188_1.htm 2.http://xiedandan.com/wordpress-pagination.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nimomeng的自我进阶

Event官方文档

当系统传递一个touch event,首先会send到一个特定的view。对于touch view来讲,这个view就是被hitTest:withEve...

14120
来自专栏王磊的博客

IE与IE内核浏览器的那点事

真正的IE浏览器与IE内核的浏览器是不是一回事呢,是不是完全一样咧?如果不一样又有什么关系咧?下面一起来找答案吧! 知识补给:   1.浏览内核 简介   2....

36960
来自专栏Objective-C

Swift-MVVM 简单演练(三)

34130
来自专栏c#开发者

datagrid资料+ by iCeSnaker - Program rhapsody

datagrid资料+ by iCeSnaker - Program rhapsody 关于datagrid的打印 http://www.chinaaspx.c...

38390
来自专栏Scott_Mr 个人专栏

React Native 系列(七) -- ListView

38560
来自专栏前端知识分享

第159天:前端知识体系框架

Web Components:http://css-tricks.com/modular-future-web-components//

17730
来自专栏MelonTeam专栏

IOS触摸事件分发机制详解

本文从三个概念UIEvent,UIResponder、Hit-Testing、Responder Chain入手,为你详细讲解这句话的含义。

66790
来自专栏Android机动车

走进SurfaceView

最近在写视频播放器的时候用到了SurfaceView和MediaPlayer,在各个功能完成后,竟得意忘形,感觉自己又get到新技能,可以嘚瑟几天了,直到前两天...

19320
来自专栏更流畅、简洁的软件开发方式

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。

     昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数、上一页、下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后...

24990
来自专栏Danny的专栏

ASP.NET中的几种分页

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

18520

扫码关注云+社区

领取腾讯云代金券