ブログを運営していると、トップページにだけこのコンテンツを表示したい!というような場面が出てくることがあります。
もしくはトップページ以外にはパンくずリストを表示させたい、戻るボタンを設置したいという事もあるかもしれません。
テーマ内にそのような機能が付いているものもありますが、phpで処理できるようになると応用が利きやすいのでこのタイミングでトップページとそれ以下のページで表示を変える方法を覚えてしまいましょう。
とはいえ全てコピペで使えるように書いておりますので、覚えるのめんどくさい!という方はコピペして中身を書き換えてください。
ブログのトップページにだけコンテンツを表示させる
ブログのトップページにだけ表示させたい場合は、if文で「トップページであれば」〇〇を表示させるという処理をしてあげる事で、トップページであれば〇〇を表示、そうでなければ何も表示されないという風に表示を切り替えることができます。
コードはこちら
<?php if ( is_home() || is_front_page() ) : ?>
ここに表示させたいhtmlを記述する
<?php endif; ?>
例えばトップページでだけスライダーで複数枚画像を表示させたい、お知らせを表示させたいといった場合にはこちらを使うことで実現可能です。
is_home()とis_front_page()について
ここでis_home()とis_front_page()という関数が出てきました。
どちらもトップページかどうかを判断する関数ですが、is_homeは投稿インデックスページを、is_front_pageはサイトフロントページにそれぞれ対応しています。
ワードプレスの「設定」→「表示設定」で何も指定していなければ基本的にはis_homeが、専用のトップページを作成して運用している場合はis_front_pageが適応される感じですね。
phpの「||」は「もしくは」という意味になりますので上記のコードの場合is_home()もしくはis_front_pageの場合処理を実行するという形になります。
両方指定しておくことで、投稿インデックスページがトップページの場合でも固定ページがトップページの場合でも対応する事が可能です。
ブログのトップページと下位のページで表示を切り分ける
ブログのトップページでは「A」、それ以外のページでは「B」を表示させたいという場合はこちら。
if文でトップに表示させるところまでは変わりませんが、その後elseでトップページではない場合どういう処理をするかという指示をしています。
コードはこちら
<?php if ( is_home() || is_front_page() ) : ?>
ここにトップページに表示させたいhtmlを記述する
<?php else : ?>
ここにトップページ以外に表示させたいhtmlを記述する
<?php endif; ?>
こちらを使う事で、例えばトップページではAのバナーを表示させ、それ以外のページではBのバナーを表示させるといった事が可能になります。
特定のページにだけコンテンツを表示させない
if文の指定を変えてあげることで特定のページにだけコンテンツを表示させないようにすることも可能です。この場合、トップページにだけコンテンツを表示させるで使用したif文を「〇〇でなければ」という風に変更します。
トップページにだけ表示させない、という場合には先ほどのis_homeとis_front_pageの前に「!」を追加します。
コードはこちら
<?php if ( !is_home() || !is_front_page() ) : ?>
ここに表示させたいhtmlを記述する
<?php endif; ?>
「!」は意味の反転になりますので、!を付けていないときはis_home(投稿インデックス)もしくはis_front_page(サイトフロントページ)の時に処理を実行するif文が、is_home()もしくはis_front_page()ではない時に処理を実行するように変化します。
その他のページ指定
同様に、カテゴリアーカイブにだけ表示しない、個別投稿にだけ表示しないといった指定も可能です。
主要なページは下記のようにする事で指定する事ができます。
個別投稿ページ
is_single()
個別投稿の中でさらにIDを指定
is_single(‘1’) ※ IDで付与されている数字を指定
固定ページ
is_page()
アーカイブページ
is_archive()
※ ここからさらにカテゴリアーカイブ→「is_category()」タグアーカイブ→「is_tag()」などと細分化も可能です。
例として個別投稿ページでは表示させない、という場合は
<?php if ( !is_single() ) : ?>
ここに表示させたいhtmlを記述する
<?php endif; ?>
といった感じですね。
表示切替のまとめ
という事でワードプレスのブログでトップページとそれ以外で表示を切り替える方法でした。
そこまで難しくなく簡単に導入できますのでこの内容はトップページだけにしか出したくないんだよなぁという場合にはこれらの方法で対処してみてください。