WEB系キャンパス

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

メディアサイトとかである、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; ?>

コメントを残す

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