説明
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() |

コメント