WordPressWordPressでサイトを作る際に便利なカスタム投稿タイプですが、様々な場面で投稿タイプを知りたくなることがあります。その方法をパターン毎にまとめてみました。投稿タイプがわかれば、get_post_type_object($post_type)で投稿タイプの情報を取れるので、そこからラベルを表示させたりできるようになります。シングルページカスタム投稿のシングルページで投稿タイプを取得するのは簡単です。get_post_type();get_post_type()で現在の投稿の投稿タイプを取得できます。カスタム投稿タイプのアーカイブページカスタム投稿タイプのアーカイブページでは、シングルページと同様、get_post_type()で取れます。......と、言いたいのですが、これは投稿が一件以上なくてはいけません。get_post_type()はあくまで現在の投稿の投稿タイプを取得する関数だからです(内部的には$post->post_typeを返すだけ)。投稿がなかったり、なんらかの理由で全て表示しない設定にしたりしていると、正しく投稿タイプを知ることはできなくなります。投稿の有無によらず、アーカイブページで投稿タイプを取得するには以下のようにします。get_query_var('post_type');WordPressではグローバル変数$wp_queryに、現在のページのリクエスト情報が入ってます。その中の連想配列$query_varsから値を引き出すのがget_query_var()です。アーカイブページでは「この投稿タイプの投稿をくれ」というリクエストが必要ですから、$wp_queryから投稿タイプを知ることができるわけですね。この方法はシングルページでも有効です。カスタムタクソノミーのアーカイブページカスタム投稿タイプと一緒に、カスタムタクソノミーを設定することもあると思います。カスタムタクソノミーのアーカイブページでも、投稿が一件でもあればget_post_type()で投稿タイプを取得できますが、投稿の有無によらずに取得するのはちょっと面倒です。get_taxonomy($taxonomy)->object_type[0];まずget_query_var('taxonomy')で現在のタクソノミーを取得し、get_taxonomy()に渡してあげることでタクソノミー情報が取得できます。このタクソノミーオブジェクトのobject_typeプロパティの配列に投稿タイプが入ってます。したら他にもっとスマートなやりかたがあるかもしれません。いい方法があれば教えてください。まとめいずれも投稿が一件以上必ず存在するのであればget_post_type()で投稿タイプを取得できます(ただし$postが上書きされてないこと)。それでも不測の事態に備えて、ちゃんとそれぞれに対応したやりかたを用いた方がいいでしょうね。おまけ:条件分岐それぞれのページの判定方法です。'ターム');//特定のタクソノミーのターム引数をなしにすれば、投稿タイプやタクソノミーによらない判定が可能です。