説明
WP_Post は、投稿・固定ページ・カスタム投稿の1件分のデータを表すクラスです。get_post() や get_posts() がこのオブジェクトを返します。
基本構文
WP_Post
引数
ID:投稿IDpost_title:タイトルpost_content:本文post_excerpt:抜粋post_status:ステータスpost_type:投稿タイプpost_name:スラッグpost_author:投稿者IDpost_date:投稿日時post_parent:親投稿のID
戻り値
プロパティ(上記)を持つオブジェクト。
使い方(サンプル)
$post = get_post( 123 );
if ( $post ) {
echo esc_html( $post->post_title );
}
注意点
post_contentは未加工の値です。表示するときはapply_filters( 'the_content', ... )を通します。- プロパティを直接書き換えても、保存はされません。保存には
wp_update_post()を使います。
実務での使いどころ
- 投稿のデータ(
ID・post_title・post_content・post_statusなど)を、オブジェクトとして、扱うとき。 get_post()やget_posts()の戻り値を、読み取るとき。
よくあるミスと対処
- オブジェクトのプロパティを書き換えても、データベースには、保存されない。保存は、
wp_update_post()。 post_contentを、そのまま出力している。フィルター前の、生の内容。表示するときは、the_contentフィルターを通す。- 存在しないプロパティへ、アクセスしている。
NG例
$post = get_post( $id );
$post->post_title = '新しいタイトル'; // 保存されない
OK例
wp_update_post( array(
'ID' => $id,
'post_title' => '新しいタイトル',
) );
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 投稿のデータを、読み取る | WP_Post のプロパティ |
| 投稿を、取得する | get_post() |
| 投稿を、更新する | wp_update_post() |

コメント