Web制作Labが運営するWPマニュアルサイトです

【条件分岐タグ】is_post_type_archiveの使い方を紹介

is_post_type_archiveは「カスタム投稿タイプのアーカイブページ」が表示中かどうかを判定する条件分岐タグです。
※「true or false」を返却するBoolean型関数となっています。

PHP
 is_post_type_archive();

パラメータ

PHP
 is_post_type_archive( $post_types );

「post_types」パラメータに判定したい投稿タイプを「文字列」または「配列」で入力することで機能します。
※デフォルトはなし

テーマ開発での使用例

何れかのカスタム投稿アーカイブページが表示されている場合

PHP
<?php if(  is_post_type_archive() ): ?>
    <!-- 何れかのカスタム投稿タイプアーカイブページが表示されている場合 -->
<?php endif;  ?>

カスタム投稿タイプ「information」のアーカイブページが表示されている場合

PHP
<?php if(  is_post_type_archive('information') ): ?>
    <!-- カスタム投稿タイプ"information"のアーカイブページが表示されている場合 -->
<?php endif;  ?>

配列を使用して複数のカスタム投稿タイプで判定する場合

PHP
<?php if(  is_post_type_archive( array('type1', 'type2', 'type3') ) ): ?>
    <!-- "type1"か"type2"か"type3"の場合のカスタム投稿タイプアーカイブページが表示されている場合 -->
<?php endif;  ?>

注意事項

「/category/uncategorized/?post_type=custom」のようなページでは「false」が返却されるようです。

true が返ってくるのは 「/?post_type=custom」のようなページだけです。

パラメータ(?=の箇所)にカスタム投稿が含まれているかで判定しているのではなく、指定したカスタム投稿が全て表示されるアーカイブページであるかが判定基準のようです。

※今は閉じてしまったcodex日本語版に掲載されていました。