概要
get_post_type 関数は、投稿情報の投稿タイプを取得するために用いられます。この関数は以下のような機能を実装する際によく使われます。
- カスタム投稿タイプの確認
- 特定の投稿タイプの記事リストを表示
- 投稿タイプに応じた異なるテンプレートをロード
- 管理画面での投稿タイプのカスタマイズ
- 投稿タイプに基づく条件分岐
- 投稿内容に基づいたメタデータの取得
- ウィジェットやショートコード内での投稿タイプの利用
- REST APIエンドポイントのカスタマイズ
構文
get_post_type( $post );
パラメータ
$post(オプション): 投稿オブジェクトまたは投稿IDを指定します。指定しない場合は、グローバル$postを使用します。
戻り値
指定された投稿の投稿タイプを示す文字列を返します。該当する投稿が存在しない場合は、false を返します。
関連する関数
使用可能なバージョン
WordPress 2.0.0 以降で使用可能です。
コアファイルのパス
wp-includes/post.php
サンプルコード
サンプルコード1: 投稿タイプの取得と表示
$post_id = 42;
$post_type = get_post_type( $post_id );
echo '投稿タイプ: ' . $post_type;
このコードは、投稿IDが42の投稿の投稿タイプを取得して表示します。
サンプルコード2: 現在の投稿の投稿タイプを確認
if ( is_single() ) {
$post_type = get_post_type();
if ( $post_type === 'page' ) {
echo 'このページは通常のページです。';
}
}
このコードは、現在の投稿が通常のページであるかどうかを確認します。
サンプルコード3: カスタム投稿タイプの場合にメッセージを表示
if ( is_singular() ) {
$post_type = get_post_type();
if ( $post_type === 'recipe' ) {
echo 'これはレシピの投稿です。';
}
}
このコードは、現在の投稿がカスタム投稿タイプ「recipe」かどうかを確認してメッセージを表示します。
サンプルコード4: ループ内での投稿タイプの表示
while ( have_posts() ) {
the_post();
$post_type = get_post_type();
echo '<h2>' . get_the_title() . '</h2>';
echo '<p>投稿タイプ: ' . $post_type . '</p>';
}
このコードは、投稿のループ内で各投稿のタイトルと投稿タイプを表示します。
サンプルコード5: REST APIでの投稿タイプの取得
add_action( 'rest_api_init', function () {
register_rest_route( 'custom/v1', '/post-type/', array(
'methods' => 'GET',
'callback' => function ( $data ) {
return get_post_type( $data['id'] );
},
));
});
このコードは、REST APIに新しいエンドポイントを追加し、指定された投稿IDの投稿タイプを返します。
この関数のアクションでの使用可能性
| アクション | 使用可能 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | 〇 |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
非推奨または削除されたバージョン
特に非推奨や削除されたバージョンはありません。