WordPressでサイトを制作していく上で、PHPの条件分岐(if文)を使ってサイトの表示を変える、という方法があります。例えば、コーポレートサイトを作成するとして、トップページと会社概要ページとでサイドバーの内容を変えたり、ヘッダーの内容を変えてほしい、という依頼があった場合にこの条件分岐を使うことで実現させることができます!
そこで今回はWordPressでよく使う条件分岐の書き方を紹介していきます!
トップページのみ条件分岐させる時の書き方
まずサイトのトップページだけデザインやレイアウトなどを変更させる場合の条件分岐の書き方は以下になります。
<?php if(is_home()): ?> トップページ(index.php)を表示している時の内容 <?php else: ?> それ以外のページの時の表示内容 <?php endif; ?>
ただ、トップページを固定ページで指定している場合、<php? if(is_home()): ?>では適応されません。その場合は<php? if(is_front_page()): ?>を使うことで条件分岐させることが出来ます!
その時の書き方も紹介しておきます。
<?php if(is_front_page()): ?> トップページ(固定ページで指定している場合)を表示している時の内容 <?php else: ?> それ以外のページの時の表示内容 <?php endif; ?>
投稿ページを条件分岐させる書き方
続いて、投稿ページでの条件分岐の書き方を紹介します!
<?php if(is_single()): ?> 投稿ページの時に表示させたい内容 <?php else: ?> それ以外の時の表示内容 <?php endif;?>
このように書くことで投稿ページを表示させている時の条件分岐を可能にさせます。
その他にも、投稿ページの中でも例えばページIDが1の時とそれ以外の時で表示内容を変えたい時も出てくると思います。その時はsingle.php内で特定の投稿ページを表示させたときに変更させたい箇所に対して以下のように書いてあげることで条件分岐させることが可能になります。
<?php if(is_single('1')): ?> ページIDが1の時の表示内容 <?php else: ?> それ以外の投稿ページの時の表示内容 <?php endif; ?>
また、複数の投稿ページとそれ以外の時とで表示内容を変更させたい時は以下のように書きます!
<?php if(is_single(array(1,2,3))): ?> ページIDが1、2、3の時の表示内容 <?php else: ?> それ以外の投稿ページの時の表示内容 <?php endif; ?>
このようにarray文を使うことで複数指定してあげることが可能となります(^^)
また、投稿ページでもページIDが1の時はこの表示、ページIDが2の時はこういう表示、それ以外の時はこういう表示をさせたい…という時も出てくる時があります。その時は以下のように記述してあげることで条件分岐させることができます!
<?php if(is_single('1')): ?> ページIDが1の投稿ページに表示させたい内容 <?php elseif(is_single('2')): ?> ページIDが2の投稿ページに表示させたい内容 <?php endif; ?>
この書き方はかなり使う場面があるかと思われますので、是非とも覚えておきましょう!
固定ページでの条件分岐の書き方
続いて固定ページの時の条件分岐の書き方を紹介したいと思います!基本的には上で紹介した投稿ページの条件分岐の書き方と構造は同じになります。
<?php if(is_page()): ?> 固定ページの時に表示させたい内容 <?php else: ?> それ以外の時の表示内容 <?php endif;?>
このように記述することで固定ページの条件分岐が可能となります!
その他、投稿ページの時と同じようにページIDを指定して特定の固定ページに対して条件分岐させることも可能となりますので、いろいろと試してみましょう!
まとめ
以上がWordPressにてよく使われる条件分岐の書き方になります!
条件分岐はサイトを制作する上で必要になってくる場面が出てくると思いますので、是非ともご活用ください(*^-^)