上一篇说了下如何创建wordpress导航菜单,这篇主要说下如何创建分页。分页我们一般用在文章列表上面,wordpress 也自带的分工功能只是比较简洁,所以有很多wordpress分页插件,大家可以去找找看,这里我们主要自己创建一个分页函数,来实现分页功能。使用这个方法,需要你有一定的html+css 基础,不同的主题,使用该方法样式会有不同需要我们在微调一下,先贴代码

function of_pagenavi( $settings ) {
   $s = wp_parse_args( $settings, array(
      'range' => '5',
      'before' => '',
      'after' => '',
   ) );
   $range = intval( $s['range'] );
   global $paged, $wp_query;
   if ( ! $max_page ) {
      $max_page = $wp_query->max_num_pages;
   }
   if( $max_page > 1 ) {
      echo $s['before'];
      echo '<ul class="pagination">';
      echo '';
      if( ! $paged ) {
         $paged = 1;
      }
      if( $paged != 1 ) {
         echo '<li><a href="' . get_pagenum_link(1) . '" class="extend first"> &laquo; </a></li>';
      }
       echo '<li>';
       previous_posts_link( ' &lsaquo; ' );
       echo '</li>';
      if( $max_page > $range ) {
         if( $paged < $range ) {
            for( $i = 1; $i <= ( $range + 1 ); $i++ ) {
               $classes = array( 'page' );
               $href = get_pagenum_link($i);
               if( $i == $paged )
                  $classes[] = 'active';
               printf( '<li><a href="%s" class="%s">%s</a></li>', $href, implode( ' ', $classes ), $i );
            }
            echo '<li class="disable"><a href="javascript:;">...</a></li>';
         } elseif( $paged >= ( $max_page - ceil( ( $range/2 ) ) ) ) {
            echo '<li class="disable"><a href="javascript:;">...</a></li>';
            for( $i = $max_page - $range; $i <= $max_page; $i++ ) {
               $classes = array( 'page' );
               $href = get_pagenum_link($i);
               if( $i == $paged )
                  $classes[] = 'active';
               printf( '<li><a href="%s" class="%s">%s</a></li>', $href, implode( ' ', $classes ), $i );
            }
         } elseif( $paged >= $range && $paged < ( $max_page - ceil( ( $range/2 ) ) ) ) {
            echo '<li class="disable"><a href="javascript:;">...</a></li>';
            for( $i = ( $paged - ceil( $range/2 ) ); $i <= ( $paged + ceil( ( $range/2 ) ) ); $i++ ) {
               $classes = array( 'page' );
               $href = get_pagenum_link($i);
               if( $i == $paged )
                  $classes[] = 'active';
               printf( '<li><a href="%s" class="%s">%s</a></li>', $href, implode( ' ', $classes ), $i );
            }
            echo '<li class="disable"><a href="javascript:;">...</a></li>';
         }
      } else {
         for( $i = 1; $i <= $max_page; $i++ ) {
            $classes = array( 'page' );
            $href = get_pagenum_link($i);
            if( $i == $paged )
               $classes[] = 'active';
            printf( '<li><a href="%s" class="%s">%s</a></li>', $href, implode( ' ', $classes ), $i );
         }
      }
       echo '<li>';
       next_posts_link(' &rsaquo; ');
       echo '</li>';
      if( $paged != $max_page ) {
         echo '<li><a href="' . get_pagenum_link($max_page) . '" class="extend last"> &raquo; </a></li>';
      }
      echo '</ul><!-- .wp-pagenavi -->';
      echo $s['after'];
   }
}

先将上面的代码放到主题的functions.php 里面,如果了解html的朋友会看出来它的样式结构大致如下:

<ul class="pagination">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>

如果把它用到含有bootstrap框架的主题中的时候,会很好的展示,如果是自己写的主题,要用上面的分页函数的话,就需要你自己写样式来这里我就不细说拉。然后接着我们来调用这个函数,比如想在首页列表中使用 在index.php 里面,这个需要根据你的主题具体来添加,假如你看到下面代码

<?php while (have_posts()) : the_post();?><?php endwhile;?>

结尾处有 endwhile  这个是常用写法,整段的意思就是把你的文章一篇篇列出来,然后我们在这个endwhile 后面把这个函数添加上去 <?php  of_pagenavi(9);  ?> 里面的数字是默认值这个我们随便添加上就好,这样你的分页函功能就添加好了。是不挺简单的,好吧,如果刚刚学wordpress或者php的,需要先了解下,然后自己多琢磨下。今儿就说到这儿。