WordPressでトップページとそれ以外のページで別の表示をさせたいときに書く「is_home」

WordPressでトップページとそれ以外のページで別の表示をさせたいときに書く「is_home」
関連キーワード
WordPress

WEBサイトやブログではトップページとそれ以外のページで表示する項目は当然違うものになります。

ページ丸ごと分ければいいんですが、共通するテンプレートファイル上の表示も同じように区別して表示したいことってありますよね。

というわけで、WordPressで「トップページかそうじゃないか」という条件で分岐させる方法をご紹介します。

トップページかそうじゃないかという条件で分岐させる

WordPressにはトップページとそれ以外のページで条件分岐をする「is_home」という関数がありまして、下記のように記述します。

<?php if (is_home()) :?>
トップページで表示したいものをここに入れる
<?php else: ?>
それ以外のページで表示したいものをここに入れる
<?php endif; ?>

表示させたいものがない場合は空欄にしておいてください。「トップページだけは表示、他は非表示」といった使い方ができます。

活用事例としては、サイドバーに「新着一覧」を入れたいときにトップページだけ非表示にするとか。

実際に僕はこの方法を使ってます。トップページ自体が新着記事の一覧になってるので、サイドバーに同じものは必要ないんですよね。

あとは「トップへ戻る」というボタンはトップページにある必要性がないのでそれを非表示にしたり。アイデア次第でいろいろ出来ると思います。

他の条件分岐と組み合わせる

他の条件分岐と組み合わせる(例えば「スマホのトップのみ表示」)こともできます。

<?php if (is_home()) :?>
  <?php if (wp_is_mobile()) :?>
  スマホのトップページで表示したいものをここに入れる
  <?php else: ?>
  パソコンのトップページで表示したいものをここに入れる
  <?php endif; ?>
<?php else: ?>
  <?php if (wp_is_mobile()) :?>
  スマホのそれ以外のページで表示したいものをここに入れる
  <?php else: ?>
  パソコンのそれ以外のページで表示したいものをここに入れる
  <?php endif; ?>
<?php endif; ?>

共通するテンプレートファイルの中で広告の表示を細かく分けたいときなどに便利ですね。

ちなみに、スマホとの条件分岐に関しては下記の記事をご覧ください。functions.phpに追記するだけでより便利に使える方法をご紹介してます。

最後に

記述方法も簡単なのでコピペで使えます。初心者の方もぜひご活用ください。

その他にも便利な条件分岐についてはこちら。