get_post_field() の使い方|説明・引数・注意点

説明

get_post_field() は、投稿の特定のフィールド(カラム)の値だけを取得する関数です。

基本構文

get_post_field( string $field, int|WP_Post $post = null, string $context = 'display' ): string

引数

  • $field:post_title、post_content、post_status など
  • $post:投稿IDまたはオブジェクト
  • $context:raw / display / edit など

戻り値

フィールドの値(文字列)。取得できなければ空文字。

使い方(サンプル)

$slug = get_post_field( 'post_name', 123 );

注意点

  • 存在しないフィールドは空文字を返します。
  • display を指定するとフィルターが適用されます。

実務での使いどころ

  • 投稿のタイトル、本文、抜粋などを、1つだけ取り出すとき。
  • get_post() でオブジェクトを取るほどでもないとき。
  • フィルターを通した値(display)と、生の値(raw)を使い分けるとき。

よくあるミスと対処

  • フィールド名が間違っている(post_title を title と書くなど)。存在しない名前では、空文字が返る。
  • display の値を、保存し直すデータとして使っている。フィルターが適用されているため、保存には raw を使う。
  • カスタムフィールドの取得に使っている。カスタムフィールドには get_post_meta() を使う。

NG例

$title = get_post_field( 'title', $post_id ); // フィールド名が違うため、空になる

OK例

$title = get_post_field( 'post_title', $post_id );

使い分け早見表

やりたいこと 使うもの
フィールドを1つ取得 get_post_field()
投稿全体を取得 get_post()
カスタムフィールドを取得 get_post_meta()

関連項目

get_post()、get_the_title()

公式リファレンス:get_post_field() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました