WordPressサイトで「ホームページだけに特定のコンテンツを表示したい」という場面はよくありますよね。
たとえば、トップページにだけバナーを表示したり、お知らせを出したりといった用途です。
WordPressのテンプレートファイルで「ホームページだけに表示する」条件分岐の書き方を解説します。
目次
固定ページがトップページ(通常のホーム)として表示されているとき
1 2 3 4 5 |
<?php if ( is_front_page() ) : ?> <!-- ホームページ(固定ページ)だけに表示させたい内容 --> <?php endif; ?> |
例:ホームページにだけバナーを表示したい場合
1 2 3 4 5 6 7 |
<?php if ( is_front_page() ) : ?> <div class="top-banner"> <img src="images/top-banner.jpg" alt="キャンペーンバナー"> </div> <?php endif; ?> |
投稿一覧ページがトップページになっているとき
1 2 3 4 5 |
<?php if ( is_front_page() && is_home() ) : ?> <!-- ブログがホームになっているとき限定 --> <?php endif; ?> |
投稿一覧ページ(別のページに設定)だけに表示したいとき
1 2 3 4 5 |
<?php if ( is_home() && !is_front_page() ) : ?> <!-- /blog など投稿一覧ページだけ --> <?php endif; ?> |
よくある間違い
is_home() だけだと「投稿一覧ページ」にもマッチするので、固定ページトップには反応しません。
is_front_page() と is_home() は完全に別物として覚えておきましょう。
まとめ
表示したいページ | 条件式 |
---|---|
トップページ(固定ページ) | is_front_page() |
トップページ(投稿一覧) | is_front_page() && is_home() |
投稿一覧ページ(別ページ) | is_home() |