私はオフセットパラメータを使用してWP_Queryを使用するカスタムループに取り組んでいます。問題は、オフセットを追加するとすぐにページ付けが崩れ、ページ番号に関係なく同じリンクが表示されることです。
<?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; ?>
私はここのコードに従ってみました:
https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination
しかし、このコードをテーマに追加すると、関連するクエリがすべて壊れます。
これをどのように機能させるかについてのアイデアはありますか?
同じ問題がありました。
これがあなたのために働くかどうかチェックしてください:
<?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();
?>