get_post_types() の使い方|説明・引数・注意点

説明

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

コメント

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