© 2023 MNET LLC. All Rights Reserved.

記事取得のカスタマイズが捗る。WP_Queryの使い方。基本的な使い方編

山下 生真

WordPressをカスタマイズする際に避けては通れない『ループ処理』

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

ここにループの内容を記載

<?php endwhile; endif; ?>

こちらが基本的にループを回して記事の内容を拾ってくるようなコードにはなりますが
これだと決まった記事しか呼び出せません。
「カテゴリーを指定して取得したい」「ある場所だけ記事数を指定して取得したい」等の初歩的なカスタマイズから「簡易的なAjax処理のような動きをしたい」「あのタクソノミーとこのタクソノミーを指定して取得したい」等の高度な記事取得方法までかなり万能な子です。

基礎知識としてサブループ「WP_Query」を使えると制作の幅が一気に広がりますので是非使いこなせるようになってください!

WP_Queryの基本的な使い方

まずは基本的な記述方法から見ていきましょう。

<?php
 $args = array(
  'post_type' => 'post', //投稿タイプの指定
  'posts_per_page' => '-1' //表示件数を指定。-1は全件表示
  'order' => 'DESC' //昇順・降順の表示順を指定
 );
 
 $the_query = new WP_Query($args);
 if($the_query->have_posts()): while($the_query->have_posts): $the_query->the_post();
?>

ループの中身の記述

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

流れはこのようになっております。

  1. 2行目、配列$argsに記事を取得するためのパラメータ(条件)を指定しています。この配列$argsの中身を変える事により様々な記事取得方法の指定ができます。
  2. 8行目、WP_Queryクラスを呼び出して引数にクエリ情報(検索情報)を渡すことによって拾ってきた記事内容が変数$the_queryに代入される。
  3. 9行目のように変数$the_queryを元にループを回し各個別記事の情報を取得する
  4. 14行目でループを閉じる。※wp_reset_postdata();を必ず記述すること!記述を忘れるとメインループにも影響を及ぼしバグの原因になります。

その他のパラメータ

投稿タイプの指定
特定の投稿ページ・固定ページの指定
並び順の指定
1ページあたりの取得数・ページ送りの指定

などなど高度な指定方法も様々ありますので随時追記更新してまいります!

ワードプレス学習にお勧めの書籍

ビジネスサイトを作って学ぶ WordPressの教科書 Ver.5.x対応版

こちらの書籍はデモサイトを作りながらワードプレスで最低限使うであろう技術が詰まった一冊です。この本を何度か学習することによりワードプレスの基本的な考え方から少し応用に踏み込んだところまでの技術が身に着きます。

WordPressデザインレシピ集

こちらの書籍はデモサイトを制作して動きを把握するというより、辞書的な立ち位置の本なのかな?と思います。リファレンスが読みにくいときに各メソッドやクラスの内容を簡潔に使用例も交えて紹介してくれているので「あれ?あの処理はどうするんだっけ?」というようなときに辞書として重宝しております。

山下 生真

役員

建築家を志し京都の大学を卒業。様々な業種を経て、IT業界に心惹かれ、一心発起し、プログラミングスクールに業務の傍ら通う。趣味のYouTubeの動画編集・撮影活動で現CEOと出会う。幼少期からの夢であった”魔法使いになってみんなの役に立つ”実現の為、IT技術を駆使し、世の中の役に立つことを目標に起業。座右の銘は”野心・向上心”。

HOT TOPICS
人気の記事

全て見る