web-dev-qa-db-fra.com

WP Requête avec offset casse wp_pagenavi ou toute pagination

Je travaille sur une boucle personnalisée en utilisant WP_Query en utilisant le paramètre offset. Le problème est que dès que j'ajoute l'offset, il casse la pagination, affichant les mêmes liens quel que soit le numéro de page.

<?php

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$query_args = array(
  'post_type' => 'notice',
  'posts_per_page' => 6,
  'offset' => 1,
  'paged' => $paged
);

$the_query = new WP_Query( $query_args );
?>

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

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

    <h3><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></h3>

<?php endwhile; ?>

  <?php wp_pagenavi( array( 'query' => $the_query ) ); ?>

<?php endif; ?>

J'ai essayé de suivre le code ici:

https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination

Mais l'ajout de ce code à mon thème interrompt toutes les requêtes associées.

Des idées sur la façon dont je pourrais faire fonctionner cela?

1
Johann

J'ai eu le même problème.

Vérifiez si cela fonctionne pour vous:


<?php
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $per_page = 9;
  $default_offset = 4;

  if ($paged == 1) {
    $offset = $default_offset;
  } else {
    $offset = (($paged - 1) * $per_page) + $default_offset;
  }

  $args = array(
    'post_type' => 'post',
    'posts_per_page' => $per_page,
    'order'   => 'DESC',
    'offset' => $offset,
    'paged' => $paged
  );

  $loop = new WP_Query($args);

  while ($loop->have_posts()) : 
    $loop->the_post();
?>
  ... HTML
<?php 
  endwhile; 
  wp_pagenavi(array('query' => $loop)); wp_reset_postdata();
?>

1
jordanlenon