2つのクエリを1つにまとめて一覧を取得し、ページネーションを正常に動作させたい
解決したいこと
Seamless Sticky Custom Post Typesを使用し固定表示を行い、一覧ページに固定表示した投稿とそれ以外の投稿の全件を取得し、1ページ12記事の表示のページネーションを正常に動作させたい。
発生している問題・エラー
固定表示した投稿とそれ以外の投稿それぞれのQueryを1つにまとめてページネーションに設定したが、'posts_per_page' => -1,を設定しているため1ページに全件表示され、ページネーションが正常に動作しない。
表示設定では1ページの最大投稿数は12に設定済み。
該当するソースコード
<div class ="gallery-wrapper">
<?php
$term_object = get_queried_object(); // タームオブジェクトを取得
$term_slug = $term_object->slug; // タームスラッグ
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$sticky_args = [
'posts_per_page' => -1,
'order' => 'DESC',
'post_status' => 'publish',
'post_type' => 'gallery',
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'gallery-cat',
'field' => 'slug',
'terms' => $term_slug,
),
),
'post__in' => get_option('sticky_posts')
];
$args = [
'posts_per_page' => -1,
'order' => 'DESC',
'post_status' => 'publish',
'post_type' => 'gallery',
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'gallery-cat',
'field' => 'slug',
'terms' => $term_slug,
),
),
'post__not_in' => get_option('sticky_posts')
];
$sticky_query = new WP_Query($sticky_args); // 固定表示の記事を取得
$the_query = new WP_Query($args); // 固定表示以外の記事を取得
$new_query = new WP_Query();
$new_query->posts = array_merge( $sticky_query->posts, $the_query->posts );
$new_query->post_count = $sticky_query->post_count + $the_query->post_count;
?>
<?php
if($new_query -> have_posts()):
while ( $new_query -> have_posts() ) : $new_query -> the_post();
?>
//ここにループ投稿
<?php endwhile; ?>
<?php endif; ?>
</div>
<div class ="page-nation">
<?php
if(function_exists('wp_pagenavi')):
wp_pagenavi(array('query'=>$new_query));
endif;
?>
</div>
自分で試したこと
'posts_per_page' => -1 を 'posts_per_page' => 12 に変更するとそれぞれの投稿が12投稿ずつ取得され1ページに24件の記事が表示される。
こちらの記事を参考にし、post_countを追加しましたが変化は見られませんでした。
https://ja.stackoverflow.com/questions/82485/%EF%BC%92%E3%81%A4%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E7%B5%90%E5%90%88%E3%81%95%E3%81%9B%E3%81%A6%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E9%96%A2%E9%80%A3%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84%E3%81%A7%E3%81%99
0