1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| <?php function custom_pagination() { global $wp_query; $total_pages = $wp_query->max_num_pages; if ($total_pages <= 1) return; $current_page = max(1, get_query_var('paged')); $pagination = '<div class="pagination">'; if ($current_page > 1) { $pagination .= sprintf( '<a href="%s" class="prev">上一页</a>', esc_url(get_pagenum_link($current_page - 1)) ); }
if ($total_pages <= 6) { for ($i = 1; $i <= $total_pages; $i++) { $active_class = ($i == $current_page) ? ' active' : ''; $pagination .= sprintf( '<a href="%s" class="page%s">%d</a>', esc_url(get_pagenum_link($i)), $active_class, $i ); } } else { $show_pages = []; $show_pages[] = 1; $start = max(2, $current_page - 1); $end = min($total_pages - 1, $current_page + 1); if ($start > 2) { $show_pages[] = '...'; } for ($i = $start; $i <= $end; $i++) { $show_pages[] = $i; } if ($end < $total_pages - 1) { $show_pages[] = '...'; } if ($total_pages > 1) { $show_pages[] = $total_pages; } foreach ($show_pages as $page) { if ($page === '...') { $pagination .= '<span class="ellipsis">...</span>'; } else { $active_class = ($page == $current_page) ? ' active' : ''; $pagination .= sprintf( '<a href="%s" class="page%s">%d</a>', esc_url(get_pagenum_link($page)), $active_class, $page ); } } }
if ($current_page < $total_pages) { $pagination .= sprintf( '<a href="%s" class="next">下一页</a>', esc_url(get_pagenum_link($current_page + 1)) ); }
$pagination .= '</div>'; echo $pagination; }
custom_pagination(); ?>
|