WordPress 无需插件实现文章列表分页导航

WordPress博客默认的文章列表分页导航是“上一篇”“下一篇”,非常不方便,之前博客吧介绍了用WordPress 博客插件实现分页导航的功能《WordPress 博客页面分页插件WP-PageNavi》,但是使用博客插件难免会影响博客的打开速度,本篇博客吧将介绍不用WordPress博客插件实现分页导航效果。

方法步骤:

  1. 登陆博客后台,在主题编辑窗口下选择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>";}}
    }
  2. 然后分别选择index.php、search.php、archive.php,在这些文件中找到代码:
    1
    2
    
    <?php next_posts_link('&laquo; Previous Entries') ?>
    <?php previous_posts_link('Next Entries &raquo;') ?>
  3. 把2中的两行代码替换为
    1
    2
    3
    
    <div class="page_navi">
    <?php par_pagenavi(6); ?>
    </div>
  4. 点击style.css进入编辑窗口,在任意位置添加样式代码:
    1
    2
    3
    
    .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 #6C85BE;color:#6C85BE;font-weight:bolder;}
  5. 保存更新后,即可看到不用博客插件实现的分页效果。演示看博客吧

提醒:分页导航的长度可以在<?php par_pagenavi(6); ?>中调节,根据主题的需要更改代码中红色的6即可;导航样式可自由修改,根据主题搭配颜色。

网友留言:

  1. ch

    2015-10-18回复

    我自己写的主题,不想用插件,index.php中肯定是找不到那些代码去替换的,代码粘上去后,实现不了分页,怎么办?

  2. 2011-11-29回复

    自动分页对搜索的搜录有影响吗?请问

    • 博主回复
      2011-11-29回复

      @weilongv, WordPress分页,如果robots.txt不禁止收录的话,会有影响的。因为会靠成分页title标题重复。但可以通过https://www.boke8.net/wordpress-category-title-repeat.html这个方法解决。演示看博客吧。

  3. 2011-11-22回复

    楼主,请教一下,为什么我在index.php找到了<?php next_posts_link
    <?php previous_posts_link 后面的代码不是一样的,求助呀。

    • 博主回复
      2011-11-22回复

      @陈云建, 不用管。替换就行了。

  4. 南窗

    2011-09-22回复

    效果很好!
    就是ie7下会跑到填充里去

    • 博主回复
      2011-09-22回复

      @南窗, 你看博客吧的会吗?博客吧用的就是这个代码。

  5. 2011-06-04回复

    赞~~简单使用,易于整合~~顶你咯~

  6. riant

    2011-01-06回复

    不错,呵,不过,for 里边的 echo 的一些引号需要转义哈,不然报错。

发表留言