macoblog

「ゲーム × プログラミング」で生きていく

アプリ検索ツール(β版)を公開

【コピペOK】wordpressで記事をループ表示する方法

WordPress プログラミング

「wordpressで記事を表示する時ってどうするんだろう」「どのループを使えばいいんだろう」こんな疑問に答えます。

調べてみるとたくさんあって困りますよね、本記事ではコピペしてすぐに使えるものを用意しています、初心者の方は参考にどうぞ。

wordpressでループ処理は欠かせません。

定番として覚えておけばこれから困ることはないでしょう。

ループ処理は基本的に3つ。

  • query_posts()
  • get_posts()
  • WP_Query()

それぞれ簡単に解説します。

query_posts()

先に言ってしまいますが非推奨です。

それはなぜか?簡単に言うと問題が発生しやすいからです、使わない事をオススメします。

get_posts()

現役のループです、簡単にループ処理を書けるのが特徴です。

後述するループと使い分けている方が多いのではないでしょうか?

簡単に書けますのでサブループなんかにもオススメかもしれません。

WP_Query()

ボスですね、前述したループと比べると拡張性が高いのが特徴です、オプションを設定したい時に便利です。

本記事ではこのWP_Query()を使ったものを紹介したいと思います。

WP_Query()を使ったループ【コピペOK】

下記になります、コピペしてすぐ使えます。

$args = array(
  'post_type' => 'post', // 他の投稿タイプを指定することも可能
  'posts_per_page' => 10, // ループ表示させる数を指定
);
$the_query = new WP_Query($args);

  if($the_query->have_posts() ):
    while($the_query->have_posts() ): $the_query->the_post();

      // ここにループさせる処理を書く
      // ここにループさせる処理を書く

    endwhile;
  endif;
wp_reset_postdata();

簡単に説明すると

2行目と3行目でオプションを設定しています、今回であれば投稿タイプと表示数ですね。

他にも設定できるオプションはたくさんありますので試してみてください、「,」カンマ区切りで同じような感じで指定すればOKです。

使用できるオプションはWP_Query関数リファレンスで確認してください。

9行目から12行目に処理やビューを記述すればOKです。

15行目がちょっと気になりますよね、お決まりで書かなきゃいけないものだと思ってもらえれば大丈夫です。

忘れるととんでもないことになりますよ・・・。

記事がない時に分岐させたい時は下記のように分岐させればOK。

$args = array(
  'post_type' => 'post', // 他の投稿タイプを指定することも可能
  'posts_per_page' => 10, // ループ表示させる数を指定
);
$the_query = new WP_Query($args);

  if($the_query->have_posts() ):
    while($the_query->have_posts() ): $the_query->the_post();

      // ここにループさせる処理を書く
      // ここにループさせる処理を書く

    endwhile;
  else:

    // ここに表示する記事がない時の処理を書く

  endif;
wp_reset_postdata();

簡単ですね。

終わりに

慣れないうちは上記をコピペして使っていけば問題ありません、使い分けるとしてもget_posts()くらいですので。

ループ後にwp_reset_postdata()は忘れないように気を付けてください、これだけは強く言っておきます。

慣れればどうってことありません、最終的にはオリジナルテーマが作れるくらいになりたいものですね。

以上になります。