WEB系キャンパス

WordPressの記事一覧で1ページと2ページ目以降の表示を変える

メディアサイトとかである、1ページの最新記事だけ大きく表示させたいけど、ページングで2ページ目は同じテンプレートを読みに行くので同じレイアウトになってしまう。
それでもいいという意見もあるけど、個人的には2ページ目は大きく見せてる記事はやめときたいなっていう時はis_pageっていう条件分岐タグを使えば、1ページ目と2ページ目以降を切り替えることができる。

1<?php if (is_paged()) : ?>
2 
32ページ目以降の処理を書く
4 
5<?php else:  ?>
6 
71ページ目の処理を書く
8 
9<?php endif; ?>

例えば、1ページ目は最新記事1件大きくして、2件目は普通サイズと処理を分ける場合は、CSSでレイアウト調整してもいいけど、表示させる項目が違う場合は、こんな感じ。

1<!-- 1ページ目の処理 --->
2 
3//最新記事を1件表示
4<?php
5$args = array(
6  'post_type' => 'post',
7  'numberposts' => 1,
8  'offset' => 0,
9);
10$posts = get_posts( $args );
11if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post );
12?>
13 
14<a href="<?php the_permalink(); ?>">
15  <?php the_title(); ?>
16</a>
17 
18<?php endforeach; ?>
19<?php endif; wp_reset_postdata(); ?>
20 
21//最新2件目以降の記事を9件表示
22<?php
23$args = array(
24  'post_type' => 'post',
25  'numberposts' => 9,
26  'offset' => 1,
27);
28$posts = get_posts( $args );
29if( $posts ) : foreach( $posts as $post ) : setup_postdata( $post );
30?>
31 
32<a href="<?php the_permalink(); ?>">
33  <?php the_title(); ?>
34</a>
35 
36<?php endforeach; ?>
37<?php endif; wp_reset_postdata(); ?>

記事一覧じゃなくて、スライダーとかならこんな感じで出せるので、色々使えそうですね。

1<?php if ( !is_paged() ) :?>
2 
3ここに1ページ目だけ出したい場合
4 
5<?php endif; ?>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です