説明
get_post_types() は、登録されている投稿タイプの一覧を取得する関数です。
基本構文
get_post_types( array|string $args = array(), string $output = 'names', string $operator = 'and' ): string[]|WP_Post_Type[]
引数
$args:絞り込み条件(public、_builtinなど)$output:namesまたはobjects$operator:and/or
戻り値
投稿タイプの名前(またはオブジェクト)の配列。
使い方(サンプル)
$types = get_post_types( array( 'public' => true, '_builtin' => false ) );
注意点
- カスタム投稿だけを取得するには
_builtin => falseを指定します。
実務での使いどころ
- 登録されている、投稿タイプの一覧を取得するとき。
- 独自に追加した、カスタム投稿タイプだけを取得するとき(
'_builtin' => false)。
よくあるミスと対処
$outputの既定はnames(名前の配列)。オブジェクトが欲しいときは、objectsを指定する。- 絞り込みをしない。
attachmentなど、標準のものも含まれる。 initフックより前に呼び、登録が済んでいない。
NG例
$types = get_post_types(); // attachment なども含まれる
OK例
$types = get_post_types( array( 'public' => true, '_builtin' => false ), 'objects' );
foreach ( $types as $type ) {
echo esc_html( $type->label );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 投稿タイプの一覧 | get_post_types() |
| 1つの投稿タイプの情報 | get_post_type_object() |
| 投稿タイプがあるか確認 | post_type_exists() |
関連項目
get_post_type_object()、post_type_exists()
公式リファレンス:get_post_types() | Function | WordPress Developer Resources

コメント