コンテンツ
「フロントページ」と「ブログ投稿インデックスページ」
「フロントページ」というのは、WordPressのトップページのこと。
「ブログ投稿インデックスページ」というのは、最新の記事一覧が表示されるページのことです。
最初のころは多くの方が、
フロントページ = ブログ投稿インデックスページ??
みたいに誤解してしまいがちですが、必ずしもそういうわけではありません。トップページに最新の記事一覧(ブログ投稿インデックスページ)を表示させずに、固定ページを表示させる場合もありますからね。ここの辺りがよく分からないという方は下記もご参照ください。
ここまでで、記事のタイトルについてのお話は終わってしまいましたが、もしかして今、メインインデックスのテンプレート(index.php)を編集中で条件分岐タグの使用で迷われていませんか?だとしたら、ここから下の話がお役に立つかもしれません。
トップページに関する条件分岐タグについて
最初にコードの意味を再確認しておきましょう。
<?php is_front_page(); ?>
- フロントページです。
<?php is_home(); ?>
- ブログ投稿インデックスページです。
トップページの「最新の投稿」だけに表示したい場合の条件分岐
<?php if ( is_home() && is_front_page() ) : ?> トップページ(ブログ投稿インデックスページ)の場合に表示する内容 <?php endif; ?>
「&&」は「かつ」という意味です。
A && B = A かつ B
上記は、「トップページかつブログ投稿インデックスページである場合」なので、「設定」>「表示設定」のところで、「ホームページの表示」(トップページ)が「最新の投稿」(ブログ投稿インデックスページ)である場合のトップページがそれに該当します。
トップページ(固定ページ)だけに表示した場合の条件分岐
※注意:「page.php」がある場合は、このコードを「index.php」に貼り付けても無意味です。トップページの表示設定を「固定ページ」にした段階で、使われるテンプレートは「index.php」ではなく、「page.php」になるからです。
<?php if ( ! is_home() && is_front_page() ) : ?> トップページ(固定ページ)だけに表示する内容 <?php endif; ?>
上記の「!」は否定です。つまり、is_home()
ではない、という意味になります。つまり、「ブログ投稿インデックスページ」ではなく、かつ、トップページの場合、要するにトップページが固定ページである場合のトップページの場合ということになります。
トップページ(最新の投稿 or 固定ページ)に表示したい場合の条件分岐
<?php if ( is_front_page() ) : ?> トップページに表示する内容 <?php endif; ?>
ブログ投稿インデックスページに表示したい場合の条件分岐
<?php if ( is_home() ) : ?> ブログ投稿インデックスページに表示する内容 <?php endif; ?>
この場合、ブログ投稿インデックスページであれば良いので、トップページだけではありません。「設定」>「表示設定」のところで、「ホームページの表示」(トップページ)が「固定ページ」を選択した場合の「投稿ページ」というページも該当します。
以上がフロントページとブログ投稿インデックスページの分岐条件のお話でした。