本文へ移動

WP_Query基礎

WP_Queryガイド
|やりたいこと・困りごと・Builderから探す

WP_Queryを最初から全部覚える必要はありません。投稿一覧を作りたい、結果が合わない、既存の一覧を変えたいなど、今の目的から読む記事と次の行動を選びましょう。

Huddly Huddly 投稿日: 2026年10月29日 読了目安: 6分

目的から1本選べば始められます

WP_Queryは、パラメーターを順に覚えるより、作りたい一覧や困っている症状に合う記事から始めてみましょう。

まず「関連記事などの一覧を足したい」「今ある一覧ページを変えたい」「表示がおかしい」のどれに近いかを考えてみてください。エディターの設定だけで実現できるならQuery Loopが候補になります。PHPで一覧を追加するならWP_Queryを使い、取得条件を作るときにWP Query Builderを利用できます。実装は検証環境で試し、本番へ反映する前に戻し方も確認しましょう。

今の目的から入口を選ぶ

最初から、どの機能やパラメーターを組み合わせるかまで考えなくても大丈夫です。「関連記事を載せたい」「2ページ目が表示されない」など、今の目的に近い入口を1つ選びましょう。 表の「次に進む場所」から、このページ内の案内へ移動できます。

今の状況最初に確認すること次に進む場所
WP_Queryが何か分からない役割と通常のループとの違い基礎記事
投稿一覧を自分で作りたい取得条件と最小構文基本構文またはBuilder
カテゴリーやカスタムフィールドで絞りたい保存値と絞り込み条件用途別の実装記事
投稿が出ない・件数や順番が合わない条件を減らして症状を切り分けるトラブル記事
カテゴリーや検索など既存の一覧を変えたいメインクエリか追加一覧かを判断するpre_get_postsの判断記事
本番を壊さず試したい検証環境、設置場所、戻し方を確認する安全実装の記事
表示が重い推測せず取得量とクエリを計測する性能記事

「そもそもWP_Queryが必要?」と迷ったら、まず使い分けを確認しましょう。記事の下に関連記事を足す場合と、カテゴリー一覧そのものを変える場合では、使う方法が違います。

方法選びに迷ったらWP_Queryを使う場面と、ほかの方法で十分な場面記事を読む

仕組みと最小構文から理解する

初めてWP_Queryを見る場合は、クラスの全パラメーターを読む必要はありません。まず「条件を作る」「投稿を取得する」「ループで表示する」「投稿データを戻す」という流れを押さえます。

役割がまだ曖昧ならWP_Queryの基礎から、すでに投稿一覧を作りたい目的が決まっているなら基本構文から始めてください。取得対象が投稿、固定ページ、カスタム投稿のどれかで迷う場合は、post_typeの解説もご覧ください。

まず役割を知りたいWP_Queryとは?記事を読む 最小コードを書きたいWP_Queryの基本構文と$argsの書き方記事を読む 取得する投稿の種類を決めたいWP_Queryのpost_type指定方法記事を読む ループ後の処理を理解したいwp_reset_postdata()が必要な理由記事を読む

ここで大切なのは、WP_Queryが見た目を作る仕組みではないことです。WP_Queryは表示対象を選び、テンプレートやブロックがタイトル、画像、抜粋などの見た目を作ります。

やりたい投稿一覧から条件を選ぶ

基本構文を理解したら、作りたい一覧に必要な条件だけを足します。「何を取得するか」「どう絞るか」「どう並べるか」「何件表示するか」に分けると、複雑な$argsも整理しやすくなります。

カテゴリーやタグならtax_query、カスタムフィールドならmeta_query、並び順ならorderbyとorderが主な確認先です。複数の条件を一度に追加せず、1条件ずつ結果を確認すると原因を追いやすくなります。

カテゴリーやタグで絞りたいtax_queryの使い方記事を読む 価格や日付などの保存値で絞りたいmeta_queryの使い方記事を読む 新しい順などに並べたいorderbyとorderで記事の順番を変える記事を読む 表示中の記事を一覧から外したい現在の記事を除外して一覧を作る記事を読む 記事の下に関連記事を載せたい同じカテゴリーから関連記事を表示する記事を読む

使うパラメーターが決まったら、次は取得した投稿をどこに、どんな形で表示するかを考えます。タイトルだけの一覧にするのか、画像付きのカードにするのかによって、表示用のコードは変わります。

使いたいパラメーターが分かったら、WP Query Builderの画面で条件を選んでみましょう。生成後は、このページの後半で紹介する検証環境に取得・表示のコードを設置して確かめます。

選んだ条件でWP_Queryのコードを作る

まずは通常の投稿を新しい順に3件。少ない条件で$argsを生成し、確認しながら絞り込みを足していきましょう。

困りごとは症状から切り分ける

コードが動かない時は、最初からすべてを書き直すより、画面に起きている症状に合う確認順を使います。「0件」「絞り込みが効かない」「件数が合わない」「同じ記事が出る」「2ページ目がおかしい」は、似て見えても確認する場所が異なります。

まず取得条件を最小にし、対象の投稿が公開されているか、post_typeやID・slug・保存値が合っているかを確認します。ページネーションの症状では、1ページ目だけで判断せず、2ページ目以降のURLと取得結果も見ます。

投稿が1件も出ない投稿が表示されない時のチェックリスト記事を読む カスタム投稿だけ出ないカスタム投稿が出ない原因記事を読む 指定したカテゴリーに絞れないカテゴリー絞り込みが効かない原因記事を読む カスタムフィールドの条件が効かないmeta_queryが効かない時のチェックリスト記事を読む 指定した件数と合わない表示件数が合わない原因記事を読む 同じ記事が繰り返し出る同じ記事が重複表示される原因記事を読む 2ページ目以降がおかしいページネーションが動かない原因記事を読む

症状記事で原因を見つけた後は、対応する基礎記事へ戻り、動作する条件と基本コードを確認します。応急処置だけを追加すると、別のページや投稿件数が変わったときに同じ問題が起きやすくなります。

既存一覧を変えるか、追加一覧を作るかを分ける

カテゴリーアーカイブや検索結果などで、現在のURLに合わせてWordPressが投稿を取得する中心の処理をメインクエリと呼びます。その一覧の件数や対象を変えたいのに、テンプレートへ新しいWP_Queryを書いても、元の一覧の取得条件は変わりません。別の投稿取得の処理が増えることになります。

既存の一覧を変える場合は、対象を限定したpre_get_postsが候補になります。一方、記事下の関連記事、トップページの別枠、新着情報など、ブラウザで開いている記事や一覧とは別の投稿を追加する場合はWP_Queryが候補です。ここでいうサブクエリは、WordPressがURLに合わせて用意した一覧とは別に、ページ内で追加して実行する投稿取得のことです。

「一覧ページそのものを変える」のか、「一覧ページの中へ別の一覧を足す」のかを先に言葉にしてください。

古いコードでquery_posts()を見つけた時も、そのまま流用せず、メインクエリを変えたいのかサブクエリを作りたいのかを判断してから置き換えます。

既存一覧と関連記事の違いを知りたいメインクエリとサブクエリの違い記事を読む 既存の一覧を変更したいpre_get_postsとWP_Queryの使い分け記事を読む 古いコードにquery_posts()があるquery_postsを使わないほうがいい理由記事を読む

WP Query Builderで取得条件を作る

WP Query Builderでは、画面で投稿タイプ、絞り込み条件、並び順、表示件数を選び、WP_Queryに渡す$argsのコードを生成できます。最初は「通常の投稿を新しい順に3件」のような少ない条件で試し、設定を変えるとコードのどこが変わるかを見てみましょう。

初めて使う方は、設定の入力からコードのコピーまでを説明した使い方ページをご覧ください。

操作方法を確認するWP Query Builderの使い方記事を読む

コードを生成できたら、検証用のWordPressへ設置して動かしてみましょう。たとえばクラシックテーマの記事下に関連記事を出す場合は、子テーマのsingle.phpや、そこから呼び出すテンプレートパーツに取得・表示の処理を置きます。

Builderで作った条件の配列だけでは一覧は表示されません。投稿を取得し、ループで表示する処理も必要です。 パーツを使う場合は、ファイルの保存だけでなく、表示したい位置から呼び出すところまで確認します。

記事IDなどの値が自分のサイトに合っているか、タイトルやURLを安全に出力しているか、the_post()を使った後にwp_reset_postdata()で投稿データを戻しているかを確認してください。ブロックテーマでは設置方法が異なるため、PHPを投稿エディターへそのまま貼り付けないでください。

コードの設置先を決めるWP_Queryのコードはどこに書く?記事を読む

実装前に検証環境と戻し方を用意する

WP_Queryの条件が正しくても、貼り付けるファイルや位置を間違えると、ページ全体が表示されなくなることがあります。本番サイトを直接編集せず、バックアップを取ってから検証環境で試してください。

ローカル環境は、自分のパソコン上で動かす検証用のWordPressです。ステージング環境は、本番サイトとは別に用意した、本番に近い構成の確認用サイトを指します。レンタルサーバーにWordPressを作っただけで本番と同じ条件になるわけではないため、PHPのバージョン、テーマ、プラグイン、データ、キャッシュ設定の違いも確認します。

検証では、対象件数が0件・1件・複数件の場合、ログイン中とログアウト中、PCとスマートフォンを確認します。ページ送りを使うなら2ページ目以降、サブループでthe_post()を使うなら後続のタイトルやURLも確認します。

実装から公開までの基本順

  1. 1
    作りたい一覧と期待する結果を決める
  2. 2
    バックアップと戻し方を用意し、検証環境を準備する
  3. 3
    WP Query Builderまたは最小コードで取得条件を作る
  4. 4
    検証環境の適切なファイルに取得・表示の処理を置く
  5. 5
    0件・1件・複数件の表示やページ送りを確認する
  6. 6
    確認した変更を本番へ反映し、表示・リンク・エラーを再確認する

検証環境の準備や表示コードの書き方に迷ったら、次の記事で確認できます。

検証環境をまだ用意していないWP_Queryを試す検証環境の選び方記事を読む

取得から表示までのコードは上の「仕組みと最小構文から理解する」で紹介した基本構文の記事、ループ後の処理はwp_reset_postdata()の記事で確認できます。

サーバー上に検証用のWordPressや公開サイトを用意したい方は、Xserverも候補になります。検証用サイトは本番と分け、契約前に必要な機能や料金を確認してください。

重い時は条件を変える前に計測する

表示が遅い時、原因がWP_Queryとは限りません。画像、外部通信、プラグイン、PHP処理、データベース、キャッシュなどを分け、同じ条件で計測します。

まずは検証環境でQuery Monitorを有効にし、管理者として遅いページを開きます。管理バーからQuery Monitorを開くと、今回のリクエストのページ生成時間とデータベース処理時間、SQLの実行件数を確認できます。過去のアクセスや、画像を含むブラウザー全体の読み込み時間を示す数値ではありません。

データベース処理に時間がかかっているなら、クエリの一覧で遅いSQLと呼び出し元を確認します。同じURL・データ・キャッシュ条件で数回測り、条件を1つ変えた後も同じ方法で比較してください。SQLの件数が多いという理由だけで、遅さの原因とは判断しないでください。

計測の手順を詳しく見るWP_Queryが重い原因を調べる方法記事を読む

WP_Queryの処理が原因だと分かったら、取得件数、全件取得、複雑なmeta_query、ランダム順、不要なページ数計算などを見直します。変更後は速度だけでなく、必要な投稿やページ送りが失われていないかも確かめましょう。

計測結果をもとに改善したいWP_Queryを高速化する方法記事を読む 投稿を全件取得しているposts_per_page=-1が重くなる理由記事を読む ランダム順で取得しているランダム表示の注意点記事を読む

WP_Queryのパラメーターとループを調べる公式資料

使いたいパラメーターに何を指定できるか、ループがどう動くかを詳しく調べるときは、次の公式資料をご覧ください。

公式リンク

公式ドキュメント

次に読む1本と、検証環境を決める

次に読む記事は1本で大丈夫です。選んだ記事の最小コードを検証環境で試し、目的の表示ができたら条件を1つずつ足してみましょう。途中で迷ったら、このガイドの目的別・症状別の入口へ戻って確認できます。

このガイドから次へ進む前の確認

  • 一覧の追加・既存一覧の変更・表示トラブルのどれかを決めた
  • 今の目的に合う記事を1本選んだ
  • コード不要ならQuery Loopを候補にした
  • PHPで一覧を作るなら検証環境で最小コードから試す
  • 本番反映前にバックアップと戻し方を確認する
WP Query BuilderBuilderで条件を組み直す条件を選び、WP_Queryのコードを画面で作れます。Builderでクエリを作る

この記事を書いた人

Huddly

Web制作 / フロントエンドエンジニア

WordPressとフロントエンド実装で迷いやすい点を、公式情報と検証結果を分けながら、初学者にも追いやすい順序で整理しています。

この記事の検証情報

検証環境

WordPress
7.1.4
PHP
8.3.36
テーマ
wpq-media + DDEV
対象
カスタム投稿 / taxonomy / meta_query

更新履歴

  • 2026年10月29日 初回公開

この記事を活用する

あとで見返す・共有する

お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。

任意のご支援 役に立ったときだけ、活動を応援できます OFUSEはサイト・記事制作に使います。支援の有無で、読める内容や使える機能は変わりません。