WordPress関数is_archiveとis_post_type_archiveの違いと使い方について【WordPress】

最終更新日:

公開日:2024-10-08

記事内に広告が含まれています。
WordPress関数is_archiveとis_post_type_archiveの違いと使い方について【WordPress】

WordPressの条件分岐の関数でis_archive()is_post_type_archive()があります。
この2つの関数の違いと使い方について、内容をまとめて詳しく解説していきます。

is_archive()とis_post_type_archive()について

is_archive()is_post_type_archive()は共にアーカイブページであるかどうかという条件分岐のタグになります。
デフォルトの投稿(post)のアーカイブはis_archive()、カスタム投稿タイプはis_post_type_archive()というふうに、使い分けをするものとなります。

それぞれ、引数の有無などに違いがありますので、次の項目から詳しく解説していきます。

is_archive()とis_post_type_archive()の基本的な使い方

まずは、is_archive()is_post_type_archive()の基本的な使い方を解説していきます。

<?php
    if(is_archive()){
        // 投稿のアーカイブページだった場合の処理
    }

    if(is_post_type_archive('blog')){
        // カスタム投稿タイプ「blog」のアーカイブページだった場合の処理
    }
?>

上記がよく使われる基本的な記述方法です。
それでは、is_archive()is_post_type_archive()それぞれの詳しい使用例や注意点を解説いたします。

is_archiveの詳しい使用例と注意点

is_archive()デフォルトの投稿のアーカイブページかどうかの条件分岐タグですが、その中には以下のものが含まれます。条件に合う場合にはtrue、それ以外はfalseを返します。

  • カテゴリーアーカイブページ
  • タグアーカイブページ
  • 日付アーカイブページ(年別、月別、日別)

is_archive()の中には以下のような条件分岐タグの内包や条件分岐も可能となります。

<?php
    if(is_archive()){
        if(is_category()){
            // カテゴリーアーカイブページだった場合の処理
        } elseif(is_tag() {
            // タグアーカイブページだった場合の処理
        } elseif(is_date() {
            // 日付アーカイブページだった場合の処理
        } else {
            // それ以外のアーカイブページだった場合の処理
        }

        if(is_tax('タクソノミー名')){
            // 指定するタクソノミーのアーカイブページだった場合の処理
        }
    }

    if(is_archive() && !is_paged()){
        // 投稿のアーカイブページで1ページ目だった場合の処理
    }
?>

また、is_archive()には引数はありません

is_post_type_archiveの詳しい使用例と注意点

is_post_type_archive()カスタム投稿タイプのアーカイブページかどうかの条件分岐タグで、引数にはカスタム投稿タイプを指定します。条件に合う場合はtrueを返し、それ以外はfalseを返します。
また、複数のカスタム投稿タイプを指定する場合array()を使用し配列で指定します。

<?php
    if(is_post_type_archive()){
        // カスタム投稿タイプのアーカイブページの場合の処理
    }

    if(is_post_type_archive('blog')){
        // カスタム投稿タイプ「blog」のアーカイブページの場合の処理
    }

    if(is_post_type_archive(array('blog', 'news'))){
        // カスタム投稿タイプ「blog」または「news」のアーカイブページの場合の処理
    }

    if(is_post_type_archive() && !is_paged()){
        // カスタム投稿タイプのアーカイブページで1ページ目の場合の処理
    }
?>

is_archive()で紹介したis_date()も内包可能ですが、is_tax()に関しては使用しても意図した反映にはならない為、独立して使用するようにしてください。

さいごに

いかがでしたでしょうか。
今回はis_archive()とis_post_type_archive()の違いと使い方について解説しました。
条件分岐のタグとしてよく使用しますので、ぜひ細かい違いも覚えて使えるようになりましょう。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP