説明
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_field() | Function | WordPress Developer Resources

コメント