ページネーションのページを変えると(次のページに行くと)、ループ機能の一部がおかしくなってしまう。
WordPressでアーカイブページを作成しています。
他のサイトで、答えていただけませんでしたのでマルチポストにします、すいません。
https://teratail.com/questions/r0uwzlzi1q5s1q
また、最初の記事とそれ以外の記事を違うアイキャッチ画面の大きさで表示する設定にして、それの表示を繰り返すように設定しました。
イメージ
1ページ目
小さな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
2ページ目
小さな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
このようなイメージです。
途中ページネーションが上手く行かずに、他のサイトを参考に位置からページネーションを作成しました。(それを成功させるまでに色々とコードを弄る)
ページネーションを
https://shanabrian.com/web/jquery/pagination.php
で作成しました。
すると、最初のページだけ小さな画像が出て、それ以降のページでは大きなアイキャッチ画像しか出ません。
ページネーションを変えたのが問題かは分かりません。
phpが正しく設定できているかなど、(php初心者な為わからない部分があります。)
イメージ
1ページ目
小さな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
2ページ目
大きな画像(ここが違う)
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
大きな画像
ここを解決したいと考えています。
archive.php
<div class="list-box">
<ul class="items">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$the_query = new WP_Query(array(
'post_status' => 'publish',
'post_type' => 'post', // ページの種類(例、page、post、カスタム投稿タイプ)
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC'
));
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
?>
<div class="item">
<?php // ブログの一覧を表示する start ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<article class="blog-list__list-item">
<?php // アイキャッチを表示させる start
?>
<div class="blog-item-thumbnail-second">
<?php if (has_post_thumbnail()) : ?>
<div class="thumbnail-image-second"><?php the_post_thumbnail(array(240, 148)); ?></div>
<?php else : ?>
<div class="thumbnail-image-second">
<img src="<?php echo get_template_directory_uri(); ?>/images/sample4.png" alt="デフォルトのアイキャッチ画像" width="240" height="148" />
</div>
<?php endif; ?>
</div>
<?php // アイキャッチを表示させる end
?>
</div>
<div class="blog-item-content">
</article>
</div>
<?php break; ?>
<?php endwhile; ?>
<?php while (have_posts()) : the_post(); ?>
<div class="item">
<article class="blog-list__list-item">
<div class="blog-list-wrapper-second">
<?php // アイキャッチを表示させる start ?>
<div class="blog-item-thumbnail">
<?php if (has_post_thumbnail()) : ?>
<div class="thumbnail-image">
<?php the_post_thumbnail(array(240, 179)); ?></div>
<?php else : ?>
<div class="thumbnail-image">
<img src="<?php echo get_template_directory_uri(); ?>/images/sample4.png" alt="デフォルトのアイキャッチ画像" width="240" height="179" />
</div>
<?php endif; ?>
</div>
<?php // アイキャッチを表示させる end ?>
</div>
<div class="blog-item-content">
<p class="blog-item-day-second"><?php the_time('Y-m-d'); ?></p>
</article>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php // ブログの一覧を表示する end ?>
<?php break; ?>
<?php endwhile;
else :
echo '<div><p>ありません。</p></div>';
endif;?>
</ul>
</div>
上記のコードではタイトルや抜粋は表示されないように削除しています。
functions.php
// アーカイブページの投稿をすべて表示する支持
add_action( 'pre_get_posts', function ( $query ) {
if ( !is_admin() && $query->is_main_query()) {
// 管理画面ではないメインクエリの場合
if ( is_archive( ) ) {
$query->set( 'posts_per_page' , -1 ); // カテゴリーアーカイブで表示したい数
}
}
return $query;
} );
このページネーションのjqファイルの設定で、記事の数は10で設定されています。
ご存じの方、また直接解決にはつながらなくとも、
何かヒントになることがありましたら、コメントお願いいたします。