get_post_type で投稿タイプの情報を取得する際には、投稿の情報が必要となるため、投稿が存在するシングルページやアーカイブページなどでは情報を取得できるが、非公開記事ばかりだったり投稿のない記事の場合は情報を取得することができない。

その場合は下記のような方法を利用してカスタム投稿タイプの情報を取得する。

// アーカイブページの場合
$post_type = get_query_var( 'post_type' );
// タクソノミーアーカイブの場合
$taxonomy = get_query_var( 'taxonomy' );
$post_type = get_taxonomy( $taxonomy )->object_type[0];