フロントページの表示あれこれ

表示設定にある「フロントページの表示」、これがどうも解りづらいので調べてみました。

最新の投稿

これを選択すると、自動的にフロントページのループに投稿が表示されるようになります。

  • 適応されるテンプレート:front-page.php ない場合は home.php
  • 適応される条件分岐タグ:is_front_page(),is_home()
  • URL:/(サイトのルート)

固定ページ

これを選択すると、任意の固定ページをフロントページとして表示させることが出来ます。

「フロントページ」だけを設定

任意の固定ページがフロントページとして表示されるようになります。ループには固定ページの内容が表示されます。

  • 適応されるテンプレート:front-page.php ない場合は page.php
  • 適応される条件分岐タグ:is_front_page()
  • URL:/(サイトのルート)

front-page.phpを置かなければpage.php(カスタムテンプレートもOK)が適応されるため、ホームを複数用意しておいて表示設定で簡単切り替え…ということも出来るわけです。

 

「投稿ページ」だけを設定

任意の固定ページがフロントページとして表示されるようになります。ループには投稿の内容が表示されます。

  • 適応されるテンプレート:home.php ない場合は index.php
  • 適応される条件分岐タグ:is_home()
  • URL:/(サイトのルート)と /example(任意のスラッグ)

…この「投稿ページ」という設定項目が実に謎でした。
せっかくの固定ページなのに、設定したとたんにテンプレートがhome.phpまたはindex,phpになってしまいます。ループに表示されるのも投稿ですし、「最新の投稿」を選ぶのと変わらないのでは?と思っていたのですが、次のような違いがあることがわかりました。

【表示される投稿に依存せずにスラッグを決められる】
たとえば「hoge」というカテゴリのアーカイブを表示させたとしても、その固定ページのスラッグが「example」ならURLは「/example」となります。(まあ、固定ページなので当たり前といえば当たり前ですが…)
その場合、サイトのフロントページと同じページがもう1つ存在する状況となります。…この状況が活用される場面はあるのでしょうか。「フロントページ」を同時設定したほうがスマートかもしれません。

【wp_list_pages()でURLを吐き出せる】
グローバルナビのひとつとして「お知らせ」とか「ブログ」を出したい、しかもwp_list_pages()で自動吐き出しにしたい!というときに実現できます。これも、「フロントページ」を同時設定したほうがスマートでしょう。

 

雑感

ぶっちゃけ「固定ページ」の「投稿ページ」設定は個人的には必要ないです(笑)
wp_list_pages()でURLを吐き出せるのは少し魅力ですが、実際の作業ではハードコードすることが多いので、あまり必要ないかな…。

 

テンプレートと条件分岐タグ対応表
最新の投稿 固定ページ
フロントページ 投稿ページ
テンプレート front-page.php front-page.php home.php
条件分岐タグ is_front_page(), is_home() is_front_page() is_home()