「設定>表示設定」画面では、フロントページ(トップページ)に設定したいページを選択することができますが、この設定によって条件分岐タグであるis_homeとis_front_pageがどのような挙動になるのかを説明します。
設定>表示設定(デフォルト設定)
スポンサーリンク
条件分岐タグは現在のページと条件が合う場合にtrueを返しますが、各設定におけるそれぞれの結果は以下のようになります。
・「最新の投稿」(デフォルト設定)の場合、フロントページではis_home/is_front_pageのどちらもtrueを返します。
・「固定ページ>フロントページ」で指定したフロントページでは、is_front_pageがtrueを返します。
・「固定ページ>投稿ページ」で指定したページでは、is_homeがtrueを返します。
具体例
具体的な例を3つ挙げてみます。
パターン1
「最新の投稿」(デフォルト設定)を設定している場合に、フロントページにコメントAを表示させたい場合。
デフォルト設定です。
1 2 3 |
<?php if( is_front_page() && is_home() ): ?> <p>最新の投稿(コメントA)</p> <?php endif; ?> |
サイドバーなどに記述してみると良いでしょう。フロントページでは、コメントAが表示されます。
パターン2
「固定ページ>フロントページ」に指定しているフロントページにコメントBを表示させたい場合。
下記例ではフロントページに「自己紹介」を指定しています。
1 2 3 |
<?php if( is_front_page() ): ?> <p>固定ページ>フロントページ(コメントB)</p> <?php endif; ?> |
フロントページ(「自己紹介」)では、コメントBが表示されます。
パターン3
「固定ページ>フロントページ」に指定しているフロントページにはコメントBを表示させ、「固定ページ>投稿ページ」に指定しているページにはコメントCを表示させたい場合。
下記例ではフロントページに「アクセス」、投稿ページに「投稿ページ一覧」を指定。
1 2 3 4 5 |
<?php if( is_front_page() ): ?> <p>固定ページ>フロントページ(コメントB)</p> <?php elseif( is_home() ): ?> <p>固定ページ>投稿ページ(コメントC)</p> <?php endif; ?> |
フロントページ(「アクセス」)ではコメントB、「投稿ページ一覧」ページではコメントCが表示されます。
以上をまとめてしまうと下記のようなコードになります。
1 2 3 4 5 6 7 8 9 |
<?php if( is_front_page() && is_home() ): ?> <p>最新の投稿(コメントA)</p> <?php elseif( is_front_page() ): ?> <p>固定ページ>フロントページ(コメントB)</p> <?php elseif( is_home() ): ?> <p>固定ページ>投稿ページ(コメントC)</p> <?php else: ?> <p>それ以外のページ</p> <?php endif; ?> |
おすすめ関連ページ
参照ページ
WordPress
Codex日本語版