プログラミングの学習ならUdemyがおすすめです!詳細はこちら

【WordPress】ループ処理の書き方についてご紹介します。

【WordPress】ループ処理の書き方についてご紹介します。

疑問くん

ワードプレスの自作テーマを作成しています!ループ処理の書き方について教えてください!

今回はワードプレスの自作テーマ作成に必要なループの書き方をご紹介します。

Nakaさん

はじめましてWEB制作会社で働いている現役WEBコーダーです。

今回はWordPressの自作テーマの作成の際に必須なループ処理の書き方についてご紹介します。

ループ処理の書き方

WordPressのループ処理はメインループとサブループの二種類があります。

  • メインループ
  • サブループ

メインループとサブループこの二つのループの書き方についてご紹介します。

メインループとサブループについて詳しく書かれている記事

メインループの書き方

ではさっそくメインループの書き方についてご紹介します。

<?php if(have_posts()): ?>
    <?php while(have_posts()): the_post(); ?>
        <!-- 繰り返し処理する内容 -->
    <?php endwhile; ?>
<?php else: ?>
    <!-- 投稿データがない場合表示される部分 -->
<?php endif; ?>

上記のコードをpage.phpまたはsingle.phpに書くと投稿が出力されます。

ではこのコードはどういう意味なのか?具体的に解説していきます。

コード解説

<?php if(have_posts()): ?>

まず上記のコードで投稿データがあるか?どうかをチェックしています。

<?php while(have_posts()): the_post(); ?>
        <!-- 繰り返し処理する内容 -->
<?php endwhile; ?>

次に投稿データがあった場合に上記のコードの処理が始まります。

コードの意味としては投稿データの数だけ繰り返し処理をしてくださいという意味になります。

なのでhave_posts()で投稿データが10件あった場合、10回の処理が行われます。

次に下記のコードです。

<?php else: ?>
    <!-- 投稿データが取得できない場合の処理 -->
<?php endif; ?>

上記のコードは投稿データがない場合に表示されます。

なので「記事が見つかりません」などの文言を書いておきましょう!

疑問くん

表示件数の変更や表示順を変更したい場合はどうすればいいの?

そうゆう時にサブループの出番です。

Nakaさん

サブループの書き方

サブループは表示件数や表示順を変更したりすることができます。

ではさっそくサブループの書き方をご紹介します。

<?php
$args = array(
'post_type' => 'post', //投稿タイプを指定
'category_name' => 'news',//カテゴリースラッグ指定
'posts_per_page' => 3, //3件表示
'order'   => 'DESC',//記事の順番変更
);
$post_query = new WP_Query( $args );
if ( $post_query->have_posts() ) :
?>

<?php while ( $post_query->have_posts() ) : $post_query->the_post(); ?>
//繰り返し処理
<?php endwhile; ?>
<?php else: ?>
// 記事がない場合
<p>記事が見つかりません。</p>
<?php endif; ?>

上記のコードはどういう意味なのか?順番に解説していきます。

コード解説

$args = array(
'post_type' => 'post', //投稿タイプを指定
'category_name' => 'news',//カテゴリースラッグ指定
'posts_per_page' => 3, //3件表示
'order'   => 'DESC',//記事の順番変更
);

上記のコードでどういう条件でループ処理させるか?条件を指定します。

他のパラメーターも知りたい方は関数リファレンス/WP Query – WordPress Codex 日本語版が参考になります。

$post_query = new WP_Query( $args );
if ( $post_query->have_posts() ) :
?>

<?php while ( $post_query->have_posts() ) : $post_query->the_post(); ?>
//繰り返し処理
<?php endwhile; ?>
<?php else: ?>
// 記事がない場合
<p>記事が見つかりません。</p>
<?php endif; ?>

あとのコードはメインループと一緒ですね。

指定された条件の投稿データをループしてください!という意味になります。

もし投稿データがない場合は記事が見つかりません。と表示されます。

ループ処理まとめ

今回は以下の記事を参考にさせてもらいました。

関数リファレンス/WP Query – WordPress Codex 日本語版

WordPressのループを理解して、自在に記事一覧を表示しよう! | Ozlink LAB | マーケティングエージェンシー 株式会社Oz link(オズ・リンク)

WordPressの自作テーマをを作成する場合はメインループとサプループは必須のスキルになりますのでぜひ覚えましょう!

WordPressの勉強をするな文系でも解る! WordPressの基礎の理解と、独自デザインをWordpress化にするがかなりおすすめです。

私もこれで勉強しました。

それではまた!

コメントを残す

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