Code phân trang không cần plugin cho wordpress

Code phân trang không cần plugin cho wordpress

Đầu tiên các bạn cho đoạn code này vào file functions.php:
//Code phan trang function devvn_wp_corenavi($custom_query = null, $paged = null) { global $wp_query; if($custom_query) $main_query = $custom_query; else $main_query = $wp_query; $paged = ($paged) ? $paged : get_query_var('paged'); $big = 999999999; $total = isset($main_query->max_num_pages)?$main_query->max_num_pages:''; if($total > 1) echo '<div class="pagenavi">'; echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, $paged ), 'total' => $total, 'mid_size' => '10', // Số trang hiển thị khi có nhiều trang trước khi hiển thị ... 'prev_text'    => __('Prev','devvn'), 'next_text'    => __('Next','devvn'), ) ); if($total > 1) echo '</div>'; }
Rồi sau đó các bạn cho đoạn code này vào chỗ bạn muốn hiển thị phân trang:
<?php if (function_exists('devvn_wp_corenavi')) devvn_wp_corenavi(); ?>
Chú ý: Nếu muốn phân trang tại custom wp_query thì chúng ta chèn code phân trang như sau:
$news = new WP_Query($args);

if($news->have_posts()):

while ($news->have_posts()):$news->the_post();

//nội dùng hiển thị

endwhile;

//code phân trang

if (function_exists('devvn_wp_corenavi')) devvn_wp_corenavi($news);

endif; wp_reset_query();
Cuối cùng các bạn dùng css để định dạng nó theo ý mình thôi.
Còn mình cho css như hình trên. Các bạn có thể tham khảo:
.pagenavi{

margin: 20px 0 20px 0;

}

.pagenavi span,.pagenavi a{color: #4d4d4d;padding:3px;margin-right:5px;background:transparent;border:1px solid #757575}

.pagenavi a:hover,.pagenavi .current{background:transparent;color:#4d4d4d;text-decoration:none}

.pagenavi .page-numbers,.pagenavi .current{color: #4d4d4d;font-weight:bold}

.pagenavi .current{color: red;}

.pagenavi .page-numbers{border:1px solid #DDD;padding: 8px; border-radius: 8px;}