开发

WordPress 自定义分页功能

不使用 WordPress 自带的分页功能,重新自定义一个分页组件,可以完全按照自己的想法去设置需要的内容。

function lined_pagination( $range = 4 ) {
  global $paged, $wp_query;
  if( !$max_page ) {
    $max_page = $wp_query->max_num_pages;
  }
  if( $max_page > 1 ) {
    echo '<section class="articles-nav"><div class="wrap"><div class="pagination">';
    if ( !$paged ) {
      $paged = 1;
    }
    if( $paged > $range - 1 ) {
      echo '<a href="'.get_pagenum_link(1).'" class="item first">1</a>';
    }
    if( $paged > $range ) {
      echo '<span class="item">...</span>';
    }
    if ( $max_page > $range ) {
      if( $paged < $range ) {
        for( $i = 1; $i <= ( $range +1 ); $i++ ) {
          if( $i == $paged ) {
            echo '<span class="item current">'.$i.'</span>';
          } else {
            echo '<a href="'.get_pagenum_link($i).'" class="item">'.$i.'</a>';
          }
        }
      } elseif ( $paged >= ( $max_page - ceil( $range / 2 ))) {
        for( $i = $max_page - $range; $i <= $max_page; $i++ ) {
          if( $i == $paged ) {
            echo '<span class="item current">'.$i.'</span>';
          } else {
            echo '<a href="'.get_pagenum_link($i).'" class="item">'.$i.'</a>';
          }
        }
      } elseif ( $paged >= $range && $paged < ($max_page - ceil( $range / 2 ))) {
        for( $i = ( $paged - ceil( $range / 2 )); $i <= ($paged + ceil( $range / 2 )); $i++ ) {
          if( $i == $paged ) {
            echo '<span class="item current">'.$i.'</span>';
          } else {
            echo '<a href="'.get_pagenum_link($i).'" class="item">'.$i.'</a>';
          }
        }
      }
    } else {
      for( $i = 1; $i <= $max_page; $i++) {
        if( $i == $paged ) {
          echo '<span class="item current">'.$i.'</span>';
        } else {
          echo '<a href="'.get_pagenum_link($i).'" class="item">'.$i.'</a>';
        }
      }
    }
    if( $paged != $max_page ) {
      echo '<a href="'. next_posts( $max_page, false ) .'" class="item next">Next →</a>';
    }
    echo '</div></div></section>';
  }
}

PUJI Design 朴及设计 (c) 2024. 沪ICP备17052229号