055
アーカイブページかどうかを判定する
Library
アーカイブページとは、ある条件をもとに1つ以上の投稿を集めて表示するページのことです。たとえば特定のカテゴリーに属する記事を集めたカテゴリーアーカイブや、ある月に投稿された記事を集めた日付アーカイブなどが該当します。
アーカイブページかどうかを判定するには、is_archive()条件分岐タグを使用します。
| 用例 |
|
|---|---|
| 関連 | |
| Codex |
アーカイブページかどうかを判定する
アーカイブページかどうかを判定するには、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つありますね。この一つひとつが、それぞれのアーカイブページを判定する条件分岐タグと関連しています。
Comment