is_pageで複数ページを指定する方法
条件分岐タグis_pageは表示中のページが特定のページかどうか調べる命令ですが、複数ページを指定する場合は注意が必要です。よくある書き間違いの例に注意しながら、is_pageで複数ページを指定するコードを紹介します。
条件分岐タグis_pageの使用例
条件分岐タグis_pageを使うと、特定のページのみで処理を実行することができます。次の例では、特定のページのみで表示されるパーツを作成しています。
<?php if(is_page(8)) : ?> 特定のページだけに表示されるパーツ <?php endif; ?>
is_page(8)によってページIDが「8」のページのみが表示対象になります。
ページIDではなくスラッグで指定することもできます。
<?php if(is_page('company')) : ?> 特定のページだけに表示されるパーツ <?php endif; ?>
スラッグが「company」のページのみに、このパーツが表示されます。
is_pageで複数ページを指定する場合
複数ページを表示対象にしたい場合は、is_pageで複数ページを指定することができます。カンマで区切って指定しますが、次のような記述は間違いです。うまくいかないので注意してください。
<?php if(is_page('company', 'service', 'contact')) : ?> 特定のページだけに表示されるパーツ <?php endif; ?>
スラッグやページIDを単純にカンマで区切るのではなく「array」という命令で囲む必要があります。これにより、スラッグが「company」「service」「contact」のページが表示対象になります。具体的には次のようなコードになります。
<?php if(is_page(array('company', 'service', 'contact'))) : ?> 特定のページだけに表示されるパーツ <?php endif; ?>
arrayとは複数の値を指定するときに使うPHPの構文です。わかりづらいかもしれないので、arrayの部分だけ抜き出しておきます。
array('company', 'service', 'contact')
条件分岐タグis_pageで複数のページを指定する場合は、このように記述する必要があります。
ちなみに、個別記事を対象にするis_singleでも同じです。
「指定ページ以外」の書き方
ここまでに紹介したコードは指定したページのみに表示したいパーツでしたが、逆に指定したページ以外にパーツを表示したい場合は、is_pageの前に「!」を付加します。半角なので注意してください。
<?php if(!is_page('company', 'service', 'contact')) : ?> 指定ページ以外に表示されるパーツ <?php endif; ?>
この例ではスラッグが「company」「service」「contact」のページ以外が表示対象になります。