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?
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();
?>