不使用 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>';
}
}