Пагинация с помощью 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 и пагинацию?
У одиночной записи нет других страниц.
Если я прав, то это как минимум странно. Попробуй отказаться от пагинации и выводить записи из другой произвольной рубрики просто как виджет в сайдбаре с несколькими записями и ссылкой на архив этой категории.