メディアサイトとかである、1ページの最新記事だけ大きく表示させたいけど、ページングで2ページ目は同じテンプレートを読みに行くので同じレイアウトになってしまう。
それでもいいという意見もあるけど、個人的には2ページ目は大きく見せてる記事はやめときたいなっていう時はis_pageっていう条件分岐タグを使えば、1ページ目と2ページ目以降を切り替えることができる。
<?php if (is_paged()) : ?> 2ページ目以降の処理を書く <?php else: ?> 1ページ目の処理を書く <?php endif; ?>
例えば、1ページ目は最新記事1件大きくして、2件目は普通サイズと処理を分ける場合は、CSSでレイアウト調整してもいいけど、表示させる項目が違う場合は、こんな感じ。
<!-- 1ページ目の処理 ---> //最新記事を1件表示 <?php $args = array( 'post_type' => 'post', 'numberposts' => 1, 'offset' => 0, ); $posts = get_posts( $args ); if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post ); ?> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php endforeach; ?> <?php endif; wp_reset_postdata(); ?> //最新2件目以降の記事を9件表示 <?php $args = array( 'post_type' => 'post', 'numberposts' => 9, 'offset' => 1, ); $posts = get_posts( $args ); if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post ); ?> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php endforeach; ?> <?php endif; wp_reset_postdata(); ?>
記事一覧じゃなくて、スライダーとかならこんな感じで出せるので、色々使えそうですね。
<?php if ( !is_paged() ) :?> ここに1ページ目だけ出したい場合 <?php endif; ?>