MENU

【サブループ入門】WordPressで指定した条件の記事一覧を表示する方法とは

WordPressのテーマ制作では通常のループ「メインループ」だけではできないことをする必要が出てきます。

WordPress メインループ についてはこちら

任意の位置に、任意の件数で任意の記事一覧を出したい。
こんな時はこの「サブループ」が必要になるのです。

サブループとは、WordPressが用意したメインループとは別に、自分で作るループのことです。

前の記事で説明した通り、メインループは WordPress が「今表示すべき記事」を自動で用意してくれます。

一方サブループは、

  • 表示したい記事の条件を自分で指定して
  • 必要な場所に
  • 必要な数だけ表示する

ためのループです。


目次

サブループの基本形(まずはこれだけ)

サブループの最も基本的な書き方は次の形です。

<?php
$args = array(
  'posts_per_page' => 3
);

$query = new WP_Query( $args );
?>

<?php if ( $query->have_posts() ) : ?>
  <?php while ( $query->have_posts() ) : $query->the_post(); ?>

    <!-- ここがループ処理の中身。内部のやり方はメインループと同じ -->
    <a href="<?php the_permalink(); ?>">
      <?php the_title(); ?>
    </a>

  <?php endwhile; ?>
<?php endif; ?>

<?php wp_reset_postdata(); ?>

初心者のうちは、「こういう形で書くもの」と覚えてしまってOKです。


何をしているコードなのか(超ざっくり)

記事の条件を決める

$args = array(
  'posts_per_page' => 3
);

ここで「何件表示するか」「どんな記事か」を指定します。


記事を取得する

$query = new WP_Query( $args );

指定した条件をもとに、記事データを取得しています。


ループで表示する

<?php if ( $query->have_posts() ) : ?>
  <?php while ( $query->have_posts() ) : $query->the_post(); ?>

    <!-- ここがループ処理の中身。内部のやり方はメインループと同じ -->

  <?php endwhile; ?>
<?php endif; ?>

取得した記事を
1件ずつ表示するためのループです。


後処理(重要)

wp_reset_postdata();

サブループが終わったら、必ず元の状態に戻すために書きます。

これはも「とりあえず必須」と覚えてOKです。


表示件数を変えるサンプル

最新記事を3件表示したい場合

$args = array(
  'posts_per_page' => 3
);

表示件数は
posts_per_page で指定します。


カテゴリーを指定するサンプル

特定のカテゴリの記事だけ表示

$args = array(
  'category_name' => 'news',
  'posts_per_page' => 5
);

category_name にはカテゴリースラッグを指定します。


並び順を変えるサンプル

古い記事から表示したい場合

$args = array(
  'order' => 'ASC'
);

投稿日順にしたい場合

$args = array(
  'orderby' => 'date'
);

並び順を変えたい場合も、
サブループなら自由に指定できます。


サブループはどこで使われる?

実務では、次のような場所でよく使われます。

  • トップページの一部に最新記事一覧
  • サイドバーの「おすすめ記事」
  • 固定ページ内の記事一覧ブロック

つまり、ページの途中に記事一覧を入れたい時は、ほぼサブループです。


メインループとの違い(最低限)

  • メインループ
    → WordPressが自動で用意する
  • サブループ
    → 条件を指定して自分で作る

置き換えるものではなく、追加するものと考えると分かりやすいです。


よくある初心者のミス

wp_reset_postdata() を書かない

サブループの後に
タイトルや本文がおかしく表示される原因になります。

初心者のうちは、サブループを書いたら必ず resetと覚えておくのが安全です。


まとめ

  • サブループは自分で条件を指定する記事一覧
  • WP_Query を使うのが基本
  • 表示件数・カテゴリ・並び順を自由に制御できる
  • 実務ではほぼ必須の知識
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次