トップページ > 制作ブログ > WordPress > WordPress(ワードプレス)で「is_archive()」を使ってアーカイブページにだけ表示させる方法!
WordPressのロゴ

仙台宮城の皆さんこんにちは。

今日は、WordPressで「アーカイブページ」にだけ表示させる方法をご紹介します!

ちなみに、アーカイブページというのは、ある「条件」で複数の投稿を集めて表示してるページです。

条件というのは、「カテゴリ」だったり、「タグ」だったり、「日付」だったり、「投稿者」だったります。

is_archive()

では、早速具体的な方法です。is_archive()で判定します。


<?php if(is_archive()) : ?>
  //アーカイブページでのみ表示(処理)するコード
<?php else: ?>
  //それ以外のページで表示(処理)するコード
<?php endif; ?>

上記のように書けば、アーカイブページだけで表示したり処理するといったことができるようになります。

1ページ目だけに表示したい場合

これはちょっと応用です。アーカイブページは「ある条件の投稿を集めて表示してるページ」ですので、条件にあった投稿が多く存在すれば「ページネーション」で複数のページに分けて表示されます。

そんな時「1ページ目だけに表示したい」という場面も出てくると思います。そういった場合は、以下のようなコードで解決できます。


<?php if(is_archive() && !is_paged()) : ?>
  //アーカイブページの1ページ目でのみで表示(処理)するコード
<?php endif; ?>

&& !is_paged()が条件に加わりました。is_paged()は2ページ目以降であればtrueが返ってきます。それを!で否定していますので、

「アーカイブページ(is_archive())で、かつ(&&)2ページ目以降じゃない場合、つまりは1ページ目(!is_paged())だけ」

だけということになります。

2ページ目以降でも表示させたい内容があるなら、上記のコードに加えて、以下のように書けばいいです。


<?php if(is_archive() && !is_paged()) : ?>
  //アーカイブページの1ページ目でのみで表示(処理)するコード
<?php else: ?>
  //アーカイブページの2ページ目以降でのみで表示(処理)するコード
<?php endif; ?>

ただ、最初のif!があって、次にelseがくるなら、このように書いた方が自然ですよね。


<?php if(is_archive() && is_paged()) : ?>
  //アーカイブページの2ページ目以降でのみで表示(処理)するコード
<?php else: ?>
  //アーカイブページの1ページ目でのみで表示(処理)するコード
<?php endif; ?>

上記の例なら

「アーカイブページ(is_archive())で、かつ(&&)2ページ目以降(is_paged())」
ということになります。

おまけ

以下のコードは「アーカイブページで2ページ目以降」というコードです。


<?php if(is_archive() && is_paged()) : ?>
  //アーカイブページの2ページ目以降でのみで表示(処理)するコード
<?php endif; ?>

実はこのコード、SEOではよく使います。どういう場面で使用するかというと「メタタグでnoindexを挿入」する場合です。


<?php if(is_archive() && is_paged()) : ?>
<meta name="robots" content="noindex">
<?php endif; ?>

「2ページ目以降をnoindexにする、しない」は、まだまだ議論のあるところですが、「バナーを表示させる、しない」とかの見た目の処理以外にも、SEO対策で「ソースコードを正しくに表示させる」ために使う場面は多くありますね。

まとめ

いかがでしたでしょうか?

アーカイブページは、SEO関連の話題でよく出てくるキーワードです。この機会にアーカイブページのソースコードでも覗いてみてはいかがでしょうか?

それではまた!仙台宮城でのホームページ制作やサイトリニューアルならアンドシークまで!もちろん宮城県外の方も大歓迎です!

関連記事

アクセスランキング

カテゴリ

タグクラウド