Go to top Go to bottom

アーカイブページとは、ある条件をもとに1つ以上の投稿を集めて表示するページのことです。たとえば特定のカテゴリーに属する記事を集めたカテゴリーアーカイブや、ある月に投稿された記事を集めた日付アーカイブなどが該当します。

アーカイブページかどうかを判定するには、is_archive()条件分岐タグを使用します。

アーカイブページかどうかを判定する

アーカイブページかどうかを判定するには、is_archive()条件分岐タグを使用します。

<?php if ( is_archive() ) : ?>
  <!-- アーカイブページの時の処理 -->
<?php endif; ?>

この関数は引数を取りません。

たとえば、アーカイブページに「何の記事一覧なのか」を明確にするため、タイトルを入れることを考えてみます。

<?php if( is_archive() ) : ?>
  <header class="archive-header">
    <?php the_archive_title( '<h1 class="archive-title">「', '」の記事一覧</h1>' ); ?>
  </header>
<?php endif; ?>

もしアーカイブページなら、the_archive_title()を使ってタイトルを出力しています。「写真」というカテゴリーのアーカイブページを見ているときは、『「カテゴリー: 写真」の記事一覧』と表示されます。

アーカイブページにタイトルを表示

アーカイブページの種類

アーカイブページは、大きく次の6種類が存在します。

  • カテゴリーアーカイブ
  • タグアーカイブ
  • 日付アーカイブ
  • カスタム投稿アーカイブ
  • カスタムタクソノミーアーカイブ
  • 作成者アーカイブ

is_archive()は、これらすべてでtrueを返します。実際、is_archive()の定義を追ってみると次のようになっています。

if ( $this->is_post_type_archive || $this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax )
  $this->is_archive = true;

if文の条件が6つありますね。この一つひとつが、それぞれのアーカイブページを判定する条件分岐タグと関連しています。