Пагинация с помощью WP_Query и paginate_links()
У меня есть запись, она выводится в шаблоне типа post. На её странице должны выводиться записи из другой произвольной рубрики. С помощью WP_Query и paginate_links() я их вывожу. Но при нажатии на пагинацию, она не отрабатывает. Приходит 301 ответ о переадресации назад, в связи с тем что доступного контента нет. И визуально страница перезагружается и ничего не происходит. Что я упускаю?
<section>
<?php
// 1 значение по умолчанию
$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
$the_query = new WP_Query([
'post_type' => 'post',
'category_name' => get_post_meta($post->ID, 'category_name_child', true), // фильтр по категории
'posts_per_page' => 3, // ограничение количества результатов на странице
'paged' => $paged,
]);
if( $the_query->have_posts() ){
?>
<div class="cards">
<?php
while( $the_query->have_posts() ){
$the_query->the_post();
?>
<figure class="card__post">
<?php the_post_thumbnail('adv_thumbnail'); ?>
<figcaption class="">
<h2 class=""><?php the_title(); ?></h2>
<a href="<?php the_permalink() ?>"
target="_blank"
rel="noopener noreferrer">
<?php echo get_post_meta($post->ID, 'btn_card_value', true); ?> »
</a>
</figcaption>
</figure>
<?php
}
wp_reset_postdata(); // сбрасываем переменную $post
// пагинация для произвольного запроса
$big = 999999999; // уникальное число
?>
</div>
<div style="margin: 10px auto;">
<?php
echo paginate_links([
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'current' => max( 1, get_query_var('paged') ),
'total' => $the_query->max_num_pages,
'prev_next' => true,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
]);
?>
</div>
<?php
}
else
echo 'Записей нет.';
?>
</section>Если я правильно понял проблема в том, что я пытаюсь вывести случайные записи, на странице другой записи и так делать нельзя.
У меня 3 рубрики, для них созданы страницы, в каждой 2-4 записи. На каждую из этих записей создана своя рубрика, которая имеет 10-20 записей.
На шаблоне страницы созданном для 3х рубрик, я вывожу записи из этих рубрик в виде карточек, по нажатию на которую переходит переход в эту запись(у ней шаблон типа post). Там я отображаю записи в виде карточек, из созданной под эту запись рубрики. И в этом ошибка.
А как это все организовать что бы работала пагинация?
Т.е. на странице одиночной записи пытаешься использовать WP_Query и пагинацию?
У одиночной записи нет других страниц.
Если я прав, то это как минимум странно. Попробуй отказаться от пагинации и выводить записи из другой произвольной рубрики просто как виджет в сайдбаре с несколькими записями и ссылкой на архив этой категории.