WP_Post クラスの使い方|説明・引数・注意点

説明

WP_Post は、投稿・固定ページ・カスタム投稿の1件分のデータを表すクラスです。get_post() や get_posts() がこのオブジェクトを返します。

基本構文

WP_Post

引数

  • ID:投稿ID
  • post_title:タイトル
  • post_content:本文
  • post_excerpt:抜粋
  • post_status:ステータス
  • post_type:投稿タイプ
  • post_name:スラッグ
  • post_author:投稿者ID
  • post_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()

関連項目

get_post()、get_posts()、wp_update_post()

公式リファレンス:WP_Post | WordPress Developer Resources

コメント

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