MENU

get_post()– Function –

get_post()は、指定された投稿または現在の投稿の詳細な情報を取得するテンプレートタグです。

目次

機能の説明

get_post()は、特定の投稿、ページ、またはカスタム投稿タイプのオブジェクトを取得します。この関数は投稿IDを受け取り、その投稿に関連するデータを含むWP_Postオブジェクトを返します。これにより、タイトル、本文、カスタムフィールドなどにアクセスできます。

シンプルなコード例

$post = get_post(1); // IDが1の投稿を取得
echo $post->post_title; // タイトルを表示

このコードは、IDが1の投稿のタイトルを取得して画面に表示します。

使い方の解説

get_post()は、主に投稿オブジェクトの情報にアクセスするために使われます。特定の投稿やページの情報を取得し、その内容を出力したり、条件分岐で使う場合に便利です。

引数

$post (int | WP_Post | null)

投稿ID、WP_Postオブジェクト、またはnullnullの場合、現在の投稿が対象になります。

$output (string)

オブジェクトの形式を指定します。OBJECT(デフォルト)、ARRAY_A(連想配列)、ARRAY_N(数値配列)のいずれかを指定。

$filter (string)

raw(生のデータ)またはdisplay(HTML出力用のデータ)のいずれかを指定。デフォルトはraw

戻り値

WP_Post | array | null

指定した投稿のデータを含むオブジェクトまたは配列を返します。該当する投稿がない場合、nullを返します。

オプション

get_post()にはオプションパラメータはありませんが、引数の設定によって取得する形式を変更できます。

使用例

// 現在の投稿の情報を取得
$post = get_post();
echo 'タイトル: ' . $post->post_title . '<br>';
echo '本文: ' . $post->post_content . '<br>';

// IDが5の投稿の抜粋を取得
$post = get_post(5);
echo '抜粋: ' . $post->post_excerpt;

この例では、現在の投稿とIDが5の投稿の情報を取得し、それぞれのタイトル、本文、抜粋を表示しています。

一緒に使うことが多い関連タグ

get_the_title()

get_the_title()は、投稿のタイトルを取得します。get_post()と組み合わせることで柔軟にタイトルを操作できます。

$post = get_post(3);
echo 'タイトル: ' . get_the_title($post->ID);

このコードは、IDが3の投稿のタイトルを取得して表示します。

get_permalink()

get_permalink()は、特定の投稿のURLを取得します。

$post = get_post(7);
echo '投稿へのリンク: ' . get_permalink($post->ID);

IDが7の投稿のパーマリンクを取得し、表示します。

追加情報を取得したい場合

get_post()を使うと、投稿ID以外の情報も取得できます。投稿のメタデータやタクソノミーの情報を取得するには、get_post_meta()get_the_terms()を使います。

get_post_meta()で取得できるカスタムフィールド情報

$meta_value = get_post_meta($post->ID, 'カスタムキー', true);
echo 'カスタムフィールドの値: ' . $meta_value;

このコードは、特定の投稿のカスタムフィールドを取得して表示します。

出力できる情報

  • カスタムキー: カスタムフィールドのキー
  • カスタムフィールドの値: キーに関連付けられた値

想定されるトラブル

投稿が取得できない

解決方法: 投稿IDが正しいか確認してください。投稿がゴミ箱に入っている場合も取得できないため、状態を確認しましょう。

取得したオブジェクトがnullを返す

クエリの前にwp_reset_postdata()を実行して状態をリセットしてください。

Q&A

get_post()でカスタム投稿タイプの情報も取得できますか?

はい。get_post()は、通常の投稿だけでなくカスタム投稿タイプの情報も取得できます。

取得する情報の形式を配列に変更するにはどうすればよいですか?

引数$outputARRAY_Aを指定することで、連想配列として取得できます。

投稿のステータスが「非公開」の場合でも取得できますか?

管理者権限を持つユーザーであれば取得できます。

まとめ

get_post()は、特定の投稿やページ、カスタム投稿タイプの情報を取得するための強力なテンプレートタグです。

取得した情報は、投稿のタイトル、本文、抜粋、カスタムフィールドなど、さまざまな用途に利用できます。他のテンプレートタグと組み合わせて使うことで、柔軟な表示カスタマイズが可能です。

カスタマイズ例

1