本文へ移動

用語集

WP_Query 用語global $post

global $post は、WordPress のテンプレート内で「現在の投稿」を参照するために使われるグローバル変数です。The Loop の中で the_post() が呼ばれると、現在の投稿データが準備され、テンプレートタグがその投稿を表示できるようになります。

Huddly Huddly 投稿日: 2026年8月15日 更新日: 2026年8月29日 読了目安: 4分

まず結論

global $post は、WordPress で現在処理中の投稿オブジェクトを参照するためのグローバル変数です。The Loop の中で the_post() が呼ばれると現在の投稿データが準備され、テンプレートタグはその投稿をもとに表示します。

WordPress のテンプレートでは、今どの投稿を表示しているのかを前提にして動く処理が多くあります。the_title()the_content() のようなテンプレートタグは、現在の投稿データを参照して表示内容を決めます。

その現在の投稿データと関係する代表的な変数が $post です。関数やテンプレートパーツの中でグローバル変数として参照したい場合に、global $post; と書くことがあります。

global $post は何を指す言葉か

global $post は、PHP の関数スコープ内などで WordPress のグローバルな $post 変数を参照するための書き方です。$post には、現在の投稿を表す投稿オブジェクトが入ります。

ただし、初心者が最初から $post を直接操作する必要はあまりありません。多くの場合は、the_title()get_the_ID()get_post_meta() などのテンプレートタグや取得関数を使うほうが安全で読みやすくなります。

ここで大事なのは、global $post は投稿を取得するための条件ではないことです。投稿の取得条件は WP_Query や main query が担当します。global $post は、取得されて現在処理中になっている投稿を参照するためのものです。

そのため、投稿が表示されない時に最初から global $post を触るのではなく、まずクエリが投稿を取得できているか、ループが正しく回っているかを確認します。

用語役割確認ポイント
$post現在の投稿オブジェクトを表す変数ループ中の現在投稿と関係する
global $post;関数内でグローバルな $post を参照する宣言フックや関数内で使うことがある
the_post()次の投稿を現在の投稿として準備するThe Loop の中で使う
テンプレートタグ現在の投稿をもとに表示する関数the_title()the_content() など

custom query と wp_reset_postdata() の関係

独自 WP_Query で custom query を作ると、ループ内の the_post() によって現在の投稿データが切り替わります。つまり、$post も独自クエリの投稿を指す状態になります。

そのため、custom query のループが終わったら wp_reset_postdata() を呼び、元の投稿データへ戻す必要があります。これを忘れると、後続のテンプレートタグが独自クエリの最後の投稿を参照してしまうことがあります。

このコードの読みどころは、独自クエリのループ後に wp_reset_postdata() を入れている点です。これにより、custom query で変更された投稿データを戻します。

global $post の不具合に見える問題でも、実際には独自クエリ後に投稿データを戻していないことが原因の場合があります。custom query と $post の関係をセットで確認します。

Builder での扱い

WP Query Builder では、global $post をユーザーに直接入力させる項目として扱う必要はあまりありません。むしろ、生成コードのループやテンプレートタグが、現在の投稿データを正しく扱うようにすることが重要です。

Builder で custom query のコードを生成する場合は、$query->the_post()wp_reset_postdata() をセットで出す方針が安全です。これにより、現在の投稿データの扱いによる事故を減らせます。

もし現在の投稿IDを使って関連記事を除外するようなコードを生成する場合も、まずは get_the_ID() のような関数を使う形を検討します。global $post は必要な場面に限定します。

使いどころ・避けどころと実践確認

テンプレートタグが現在どの投稿を参照するか、ループ中の共通状態を説明する時に使う概念です。

関数へ明示的に渡せる投稿IDまでグローバル状態へ依存させる設計は避けます。

独自ループが $post を差し替えたままだと、本文外のタイトルやリンクまで別投稿を指すため、変更範囲を閉じます。

リンク先だけがずれる時は、表示部品の直前で $post がどの投稿を指しているかを見ると原因を絞れます。

ループ前後で get_the_ID()$post->ID を記録し、復元処理後に元のIDへ戻ることを確認します。

関連記事リンクのサムネイル

WordPressの仕様で確認するポイント

公式資料では、The Loop の基本で、投稿を1件ずつ処理する流れを確認できます。WP_Query のリファレンスでは、クエリ結果とループの関係を確認できます。

また、custom query 後に投稿データを戻す wp_reset_postdata()、投稿オブジェクトを取得する get_post() も合わせて確認すると、$post の扱いを理解しやすくなります。

公式リンク

公式ドキュメント

global $post は、現在処理中の投稿オブジェクトを参照するためのグローバル変数です。The Loop の中で the_post() が呼ばれると、現在の投稿データが準備されます。

迷った時は、まずテンプレートタグや get_the_ID() などの取得関数で足りるかを確認します。custom query を使う場合は、ループ後に wp_reset_postdata() を入れて、投稿データを戻します。

global $post の最終チェック

  • global $post は現在の投稿オブジェクトを参照するためのものだと理解している
  • The Loop と the_post() の関係を確認した
  • まずテンプレートタグや取得関数で足りるか確認した
  • custom query 後に wp_reset_postdata() を入れている
  • どのクエリのループ内で $post を参照しているか確認した
  • 直接 $post を書き換える使い方は慎重にしている

公式リファレンス

仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。

この記事の検証情報

検証環境

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

更新履歴

  • 2026年8月29日 本文と補助情報を更新
  • 2026年8月15日 初回公開

この用語を活用する

あとで見返す・共有する

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

他の用語も続けて確認できます

似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。

用語集トップを見る