「is_front_page()」「is_home()」は何が違うのでしょうか。
それは、管理画面の「表示設定」でどのような設定をされているかで決まります。
表示設定は組み合わせが4パターンあるのですが、全てのパターンでどのような扱いになるのか調べてみました。
用意した固定ページは2つ
| 記事タイトル | スラッグ |
|---|---|
| トップページ | top |
| ブログ一覧 | blog |
表示設定は管理画面の以下の箇所(設定→表示設定)

ここがポイント
「固定ページ」を選択した場合、「ホームページ」と「投稿ページ」には固定ページが設定でき、設定した場合は以下のルールに変わります。
- 「ホームページ」に設定した固定ページは、URLがホームURLに変更される。
- 「投稿ページ」に設定した固定ページは、記事を取得した際、自分自身ではなく全ての記事一覧が返される。
※「記事を取得」というのはメインクエリで取得した場合です。
2つのURL「ホームURL」「ホームURL/blog」で、「is_front_page()」「is_home()」の結果が「true」になるかどうか一覧表を作成しました。(ついでに「is_page()」も)
| ホームURL | ホームURL/blog | ||
|---|---|---|---|
| 1 | ![]() | is_front_page() is_home() is_page() | is_front_page() is_home() is_page() |
| 2 | ![]() | is_front_page() is_home() is_page() | is_front_page() is_home() is_page() |
| 3 | ![]() | is_front_page() is_home() is_page() | is_front_page() is_home() is_page() |
| 4 | ![]() | is_front_page() is_home() is_page() | is_front_page() is_home() is_page() |
面白い結果になりました。
4は「ホームURL」「ホームURL/blog」のいずれも全く同じ結果になりました。
ということは、「is_front_page()」「is_home()」だけではページの判断ができないということになります(別の方法を使えば判断は可能です)
次に、メインクエリは何が返ってくるのでしょうか。
| ホームURL | ホームURL/blog | ||
|---|---|---|---|
| 1 | ![]() | 全ての記事 | 固定ページ「ブログ一覧」 |
| 2 | ![]() | 固定ページ「トップページ」 | 全ての記事 |
| 3 | ![]() | 固定ページ「トップページ」 | 固定ページ「ブログ一覧」 |
| 4 | ![]() | 全ての記事 | 全ての記事 |
こちらは当然と言えば当然の結果でした。
ということで、「表示設定」は、トップページとブログの関係で決めていきます。
A~Dまでのパターンで分けました。
まとめ
| トップページとブログの関係 | ||
|---|---|---|
| 1 | ![]() |
A.「トップページ」=「ブログ一覧の1ページ目」にしたい時 ●完全なブログサイトを作成したい場合に適しています。 |
|
B.ブログが不要でトップページのエディタ(又はカスタムフィールド)が不要の時 ※「エディタ」とは管理画面から編集できるトップページの記事本文のことです ●ブログが不要で、トップページのコンテンツは全てphpファイルに記述するという場合に適しています。 |
||
| 2 | ![]() |
C.「トップページ」と「ブログ一覧」を分けたい時 ※トップページにブログの新着を表示することは可能です ●ブログ付きサイトを作成したい適しています。個人的にはこの案件依頼が一番多いです。 |
| 3 | ![]() |
D.ブログ一覧が不要でトップページのエディタ(又はカスタムフィールド)を使用したい時 ●ブログが不要で、トップページのコンテンツにエディタやカスタムフィールドを使用したい場合に適しています。管理画面の編集画面が使用できるのでお客様側での編集がやりやすいです。 |
| 4 | ![]() |
使用しない。 |











コメントを残す