@illoooill

Как правильно реализовать пагинацию post type на странице?

Есть такой код он отображает 2 записи из 7 созданных и отображает пагинацию что 4 страницы , но при клике на навигацию он просто обновляет страницу с теме же постами и в адресной строке(http://адрес сайта/feedback/page/3/) меняет на номер страницы пагинации,может быть ошибка в коде? За ранее благодарю за любой совет-ответ)

<div class="row-short-post">
         
<?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('showposts=2&post_type=feedback' . '&paged=' . $paged);
while ($wp_query->have_posts()):
    $wp_query->the_post();
    $excerpt_reviews = get_the_excerpt();
?>

             <div class="col-short-post">
                 <div class="short-post-video">
                     <?php the_post_thumbnail(); ?>
                     <div class="short-post-overlay">
                         <img src="<?php the_field('logo_company_feedback'); ?>" alt="">
                     </div>
                 </div>
                 <a class="short-post-author" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                 <span class="short-post-author-position"><?php the_field('position_company_feedback'); ?></span>
                 <div class="short-post-author-text">
                     <?php echo excerpt(25); ?>
                 </div>
                 <a class="short-post-author-more" href="<?php the_permalink(); ?>">
                     <span>Читать отзыв</span>
                     <img src="img/covid/arrow_light.svg" alt="">
                 </a>
             </div>

             <?php
endwhile; ?>

         </div>

         <div class="paginations">
             <?php
//global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links(array('base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => '?paged=%#%', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages, 'prev_text' => '&laquo;', 'next_text' => '&raquo;'));
?>
         </div>

         <?php
$wp_query = null;
$wp_query = $temp;
?>
     </div>


         </div>
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
AntonLitvinenko
@AntonLitvinenko
HTML coder
написал все то же самое, только своими словами, попробуйте:

<div class="row-short-post">

<?php 

$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;

$args = array(
  'posts_per_page' => 2,
  'post_type'      => 'feedback',
  'paged'          => $paged,
);

$wp_query = new WP_Query($args);

?>

<?php if ( $wp_query->have_posts() ) : ?>

  <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

  <div class="col-short-post">
    <div class="short-post-video">
      <?php the_post_thumbnail(); ?>
      <div class="short-post-overlay">
          <img src="<?php the_field('logo_company_feedback'); ?>" alt="">
      </div>
    </div>
    <a class="short-post-author" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    <span class="short-post-author-position"><?php the_field('position_company_feedback'); ?></span>
    <div class="short-post-author-text">
         <?php echo excerpt(25); ?>
    </div>
    <a class="short-post-author-more" href="<?php the_permalink(); ?>">
      <span>Читать отзыв</span>
      <img src="img/covid/arrow_light.svg" alt="">
    </a>
  </div>

  <?php endwhile;?>

<?php endif; wp_reset_query(); ?>

</div>

<div class="paginations">
  <?php 
    $big = 999999999;
    echo paginate_links( array(
      'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
      'format'  => '?paged=%#%',
      'current' => max( 1, get_query_var('paged') ),
      'total'   => $the_query->max_num_pages,
      'prev_text' => '&laquo;', 
      'next_text' => '&raquo;',
    ) );
  ?>
</div>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы