У меня на Wordpress есть две страницы: page-deals, на которой выводятся все кастоимные посты с определенным типом
и taxonomy-deals.php? на которой выводятся эти посты по кастомным категориям (посты и таксономия сделаны через плагин CPT UI).
Задача: сделать пагинацию на обеих страницах. Я использую kama_pagenavi для пагинации, но при переходе на страницу 2, у меня 404 ошибка.
Перерыла интернет, ничего не помогло. Может кто встречался с таким
Мой код для вывоа всех постов на page-deals:
<section class="o-section p-list">
<div class="o-container">
<div class="o-grid">
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$query = new WP_Query( array(
'post_type' => 'deals_type',
'posts_per_page' => 16,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
) );
while ( $query->have_posts() ):
$query->the_post();
?>
<div class="o-col o-col--laptop-6">
<?php get_template_part('template-parts/list-card'); ?>
</div>
<?php
endwhile;
?>
<?php kama_pagenavi($before = '', $after = '', $echo = true, $args = array(), $wp_query = $query); // пагинация, функция нах-ся в function.php ?>
</div>
</div>
</section>
Код для вывода по таксономиям:
<?php
$term_list = get_the_terms( get_the_ID(), 'deals' )[0]->slug;
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'deals_type',
'posts_per_page' => 2,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
'tax_query' => array(
array(
'taxonomy' => 'deals',
'field' => 'slug',
'terms' => array( $term_list ),
)
)
);
$query = new WP_Query($args); ?>
<section class="o-section p-list">
<div class="o-container">
<div class="o-grid">
<?php if ($query->have_posts()) : ?>
<?php
while ($query->have_posts()) : $query->the_post(); ?>
<div class="o-col o-col--laptop-6">
<?php get_template_part('template-parts/list-card'); ?>
</div>
<?php endwhile;
?>
<?php kama_pagenavi($before = '', $after = '', $echo = true, $args = array(), $wp_query = $query); // пагинация, функция нах-ся в function.php ?>
<?php
?>
<?php endif; ?>
<?php
wp_reset_postdata();?>
</div>
<?php
?>
</div>
</section>