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

説明

WP_Post_Type は、投稿タイプの設定情報を表すクラスです。get_post_type_object() が返します。

基本構文

WP_Post_Type

引数

  • name:投稿タイプ名
  • label:表示名
  • public:公開されているか
  • has_archive:アーカイブが有効か
  • supports:対応機能

戻り値

WP_Post_Type オブジェクト。

使い方(サンプル)

$obj = get_post_type_object( 'post' );
if ( $obj ) {
	echo esc_html( $obj->label );
}

注意点

  • 存在しない投稿タイプでは null が返ります。

実務での使いどころ

  • 投稿タイプの、設定(ラベル、アーカイブの有無、サポートする機能)を、取得するとき(get_post_type_object() の戻り値)。
  • 管理画面などで、投稿タイプの表示名を、出すとき。

よくあるミスと対処

  • 存在しない投稿タイプでは null が返る。確認せずに、プロパティへアクセスする。
  • 表示名を、$obj->name から取っている。name はスラッグ。表示名は、$obj->labels->name や $obj->label。
  • サポートする機能を、$obj->supports で調べようとしている。機能の有無は、post_type_supports() で確認する。

NG例

$obj = get_post_type_object( 'news' );
echo $obj->name; // スラッグで、表示名ではない

OK例

$obj = get_post_type_object( 'news' );
if ( $obj ) {
	echo esc_html( $obj->labels->name );
}

使い分け早見表

やりたいこと 使うもの
投稿タイプの設定を、読み取る WP_Post_Type のプロパティ
投稿タイプを取得する get_post_type_object()
投稿タイプを登録する register_post_type()

関連項目

get_post_type_object()、register_post_type()

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

コメント

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