در وردپرس دو نوع صفحه بندی میتونیم ایجاد کنیم :
راه حل اول استفاده از کد زیر است (در صفحات آرشیو پست ها فقط کار میکنه )
the_posts_pagination();
این کد بعد از endwhile قرار میگیرد.
حالا اگر بخواهیم صفحه بندی در صفحات آرشیو سایر پست تایپ ها مثل آرشیو محصولات استفاده کنیم باید از کد زیر استفاده بشه :
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
خط بالا باید قبل از کوئری قرار بگیره که از پارامتر paged$ داخل آرگیومنت کد زیر استفاده میشه.
$loop = new WP_Query( array(
‘post_type’ => ‘product’,
‘posts_per_page’ => 12 ,
‘paged’ => $paged,
‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_cat’,
‘field’ => ‘ID’,
‘terms’ => $cat
)
)
) );
while ( $loop->have_posts() ) : $loop->the_post();
$product = wc_get_product(get_the_ID());
$image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID()), ‘full’);
$tab_item = ‘<a href=”‘. get_the_permalink().'”>’ . get_the_title() . ‘</a>’;
echo $tab_item;
endwhile;
?>
<div id=”pageinage”>
<?php
$total_pages = $loop->max_num_pages;
if ($total_pages > 1){
$current_page = max(1, get_query_var(‘paged’));
echo paginate_links(array(
‘base’ => get_pagenum_link(1) . ‘%_%’,
‘format’ => ‘/page/%#%’,
‘current’ => $current_page,
‘total’ => $total_pages,
‘prev_text’ => __(‘« قبلی’),
‘next_text’ => __(‘بعدی »’),
));
}
?>
</div>