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;}