トップページとそれ以外のページで表示を分けたい場合の記述方法
WordPressをカスタマイズしていると、トップページにだけ表示したい内容や、トップページとサブページの記述内容を変えたい場合がよくあります。
その都度、header-sub.phpなどのテンプレートを増やすのもひとつの方法ですが、ファイルが多くなり煩雑になってしまいます。
WordPressでは、テンプレートタグを使って、各ページの内容を変えて表示することができます。その方法を下記にてご紹介します。
トップページにだけ記述する方法
1 2 3 |
<?php if ( is_home() || is_front_page() ) : ?> トップページにだけ表示する内容 <?php endif; ?> |
トップページにだけ表示したくない場合
1 2 3 |
<?php if ( !is_home() || !is_front_page() ) : ?> トップページ以外のページに表示する内容 <?php endif; ?> |
トップページの内容とそれ以外のページの内容を分けたい場合
1 2 3 4 5 |
<?php if ( is_home() || is_front_page() ) : ?> トップページにだけ表示する内容 <?php else : ?> トップページ以外のページに表示する内容 <?php endif; ?> |
それ以外のページで更に内容を分けたい場合
1 2 3 4 5 6 7 |
<?php if ( is_home() || is_front_page() ) : ?> トップページにだけ表示する内容 <?php else if(is_page( 'contact' )) : ?> 固定ページ「contact」に表示する内容 <?php else: ?> トップページとそれ以外のページに表示する内容 <?php endif; ?> |
この例では、スラッグ「contact」の固定ページに表示する内容を指定しています。
スラッグ以外でも、ページのid(固定ページには必ずidがあり、URLを見ると確認できます)やページタイトル(例:「お問い合わせ」)でも代用できます。
また、複数ページに渡る場合は、下記のようにarrayでくくる方法もあります。
1 2 3 4 5 6 7 |
<?php if ( is_home() || is_front_page() ) : ?> トップページにだけ表示する内容 <?php else if(is_page( array( 'contact', 28, 'サイトマップ' ) )) : ?> 固定ページ「contact」と、固定ページ(ID=28)と、固定ページ「サイトマップ」に表示する内容 <?php else: ?> 上記以外のページに表示する内容 <?php endif; ?> |
以上を覚えるだけで、WordPressによる表現の幅がぐんと広がります。
是非、覚えておきたい機能です。お試しください^^
公開日:2018年5月21日
最終更新日:2018年5月21日