疑問くん
ワードプレスの自作テーマを作成しています!ループ処理の書き方について教えてください!
今回はワードプレスの自作テーマ作成に必要なループの書き方をご紹介します。
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化にするがかなりおすすめです。
私もこれで勉強しました。
それではまた!