is_post_type_archive()


WordPressのis_post_type_archive()関数は、現在のクエリが特定のカスタム投稿タイプのアーカイブページであるかどうかを判定するために使用されます。この関数は、テンプレートファイル内で条件分岐を行う際に役立ちます。

構文

is_post_type_archive( $post_types );
  • $post_types(string|array) — チェックするカスタム投稿タイプの名前または名前の配列。省略した場合、すべてのカスタム投稿タイプのアーカイブページでtrueを返します。

例1: 特定のカスタム投稿タイプのアーカイブページかどうかをチェック

この例では、現在のページが「product」というカスタム投稿タイプのアーカイブページかどうかをチェックします。

<?php if ( is_post_type_archive('product') ) { echo 'これは商品アーカイブページです。'; } ?>

例2: 複数のカスタム投稿タイプのアーカイブページかどうかをチェック

この例では、現在のページが「product」または「event」のアーカイブページかどうかをチェックします。

<?php if ( is_post_type_archive(array('product', 'event')) ) { echo 'これは商品またはイベントのアーカイブページです。'; } ?>

例3: カスタム投稿タイプのアーカイブページで特定のコンテンツを表示

この例では、「news」というカスタム投稿タイプのアーカイブページにのみ特定のコンテンツを表示します。

<?php if ( is_post_type_archive('news') ) { echo '最新ニュース一覧'; } ?>

例4: カスタム投稿タイプのアーカイブページでループを使用

この例では、「project」というカスタム投稿タイプのアーカイブページでループを使用して投稿を表示します。

<?php if ( is_post_type_archive('project') ) { while ( have_posts() ) { the_post(); the_title(); } } ?>

例5: カスタム投稿タイプのアーカイブページで条件分岐

この例では、「book」というカスタム投稿タイプのアーカイブページで条件分岐を行います。

<?php if ( is_post_type_archive('book') ) { echo '書籍一覧'; } else { echo '他のアーカイブページ'; } ?>

例6: カスタム投稿タイプのアーカイブページでスタイルを変更

この例では、「portfolio」というカスタム投稿タイプのアーカイブページで特定のスタイルを適用します。

<?php if ( is_post_type_archive('portfolio') ) { echo '<style>body { background-color: #f0f0f0; }</style>'; } ?>

例7: カスタム投稿タイプのアーカイブページでJavaScriptを追加

この例では、「gallery」というカスタム投稿タイプのアーカイブページでJavaScriptを追加します。

<?php if ( is_post_type_archive('gallery') ) { echo '<script>console.log("ギャラリーページです");</script>'; } ?>

例8: カスタム投稿タイプのアーカイブページでメタデータを表示

この例では、「testimonial」というカスタム投稿タイプのアーカイブページでメタデータを表示します。

<?php if ( is_post_type_archive('testimonial') ) { echo 'お客様の声一覧'; } ?>

注意点

  • is_post_type_archive()は、メインクエリがカスタム投稿タイプのアーカイブページである場合にのみ機能します。サブクエリやカスタムクエリでは使用できません。
  • カスタム投稿タイプのアーカイブページが有効になっていることを確認してください。これは、register_post_type()has_archiveをtrueに設定することで行います。

関連機能: