【WordPress】トップページや固定ページに投稿一覧を表示する方法

WordPress
記事内に商品プロモーションを含む場合があります。

トップページや固定ページに「おしらせ一覧」みたいに投稿一覧を表示させたい。

この記事では、トップページや固定ページに投稿一覧を表示する方法を解説します。

たとえば、下は「店舗情報」という固定ページですが、今回お伝えする方法を使えば「お知らせ一覧」という投稿一覧を簡単に表示できます。

仕組みさえわかればほぼコピペでいけるので、参考にしてください。

スポンサーリンク

トップページや固定ページに投稿一覧を表示する方法

トップページや固定ページに投稿一覧を表示するにはサブループを使います。

たとえば・・・

  • 通常の投稿から
  • 投稿日と
  • 投稿タイトルを
  • 5件分表示させたい

という場合には、下記を記述すればOKです。

投稿日と投稿タイトルは、必要に応じてスタイリングしてください。

<?php
  $args = array(
    'post_type' => 'post',
    'posts_per_page' => 5
  );
  $the_query = new WP_Query($args);
?>

<?php if($the_query->have_posts()):?>
  <?php while($the_query->have_posts()):?>
    <?php $the_query->the_post();?>
      <?php the_time('Y年m月d日');?>
      <?php the_title() ;?>
  <?php endwhile;?>
<?php endif;?>
<?php wp_reset_postdata();?>

サブループとは

ざっくり言うと「本来表示できないページに無理やり投稿を表示する機能」です(※他にも用途はあります)。

当然ですが、トップページや固定ページが持っているのは「そのページの情報」だけなので、投稿記事を表示できません。

しかし、サブループを使えば、どこでも自由に投稿情報を引っ張り出せるので、簡単に投稿一覧をトップページや固定ページに表示できるようになります。

サブループの書き方

サブループの雛形はこちらです。

<?php
  $args = array(
    'post_type' => 'post',
    'posts_per_page' => 5 //表示させたい投稿の数
  );
  $the_query = new WP_Query($args);
?>

<?php if($the_query->have_posts()):?>
  <?php while($the_query->have_posts()):?>
    <?php $the_query->the_post();?>
      
    /*ループ内の記述*/

  <?php endwhile;?>
<?php endif;?>
<?php wp_reset_postdata();?>

お決まりの定型文なので、基本コピペでOKですが、ポイントだけまとめます。

  • post_typeは'post'にする(通常投稿なので)
  • posts_per_pageには表示したい投稿数を指定(全件なら-1)
  • $the_queryは任意の名前でOK($newsなど)
  • 最後のwp_reset_postdataは忘れずに書く
スポンサーリンク

まとめ

トップページや固定ページに投稿一覧を表示するにはサブループを使えばOKです。

なお「ページネーションも追加したい」という方は、下の記事で詳しく解説していますので、参考にしてください。