WordPressでカスタマイズを行う時に知っておきたいのが、条件分岐タグです。カスタマイズの幅を広げることができますし、コードやファイルの冗長化を防ぐこともできます。
条件分岐タグは奥が深いので、ビギナーが一朝一夕で身につけるのは難しいでしょう。そこで、いきなり全てを覚えるのではなく、よく使われる条件分岐タグから徐々に身につけていくことをオススメします。
本稿では入門編として、代表的な条件分岐タグの紹介と、基本的な使い方について解説しています。記事の内容を参考にしていただき、WordPressのカスタマイズに取り組んでいただければと思います。
条件分岐タグの基礎知識
そもそも条件分岐タグとはどういった機能なのか、具体例を示しながら解説していきましょう。
条件分岐タグとは、ページの種類に応じて処理する内容を分けるWordPress独自の機能になります。下のコードを見てください。
<?php if(is_home()): ?> メインページの時の処理 <?php endif; ?>
このコードにあるis_home()
が、条件分岐タグにあたります。そのページがメインページかどうかを判定し、メインページであればtrueが、そうでなければfalseが返されます。trueの時だけ、すなわちメインページの時だけ処理が実行されることになるのです。
上の例では、メインページかどうかを判定する条件分岐タグを取り上げました。その他にも、さまざまな切り口の条件分岐タグが用意されています。WordPressのカスタマイズを行うにあたって、代表的な条件分岐タグは頭に入れておいた方がよいでしょう。
代表的な条件分岐タグ6選
それでは、カスタマイズでよく使われる、代表的な条件分岐タグを6つご紹介していきましょう。
is_home()
そのページがブログのメインページかどうかを判定します。メインページではtrueを、そうでない時はfalseを返します。
<?php if(is_home()): ?> メインページの時の処理 <?php endif; ?>
is_home()
を使う場合の注意点として、ブログ一覧の2ページ目や3ページ目であってもtrueを返すことがあります。ブログ一覧の1ページ目だけをメインページとして判定したい場合は、is_paged()
を併用します。is_paged()
はブログ一覧が複数ページに渡る場合、1ページ目ではfalseを、2ページ目以降ではtrueを返します。
下の例では、メインページであり、かつ1ページ目の時だけ処理が行われます。
<?php if(is_home() && !is_paged()): ?> メインページの時の処理(1ページ目だけ) <?php endif; ?>
is_front_page()
is_home()
は、ブログのメインページかどうかを判定する条件分岐タグでした。対して、is_front_page()
はフロントページを固定ページにしている場合にtrueを返します。
<?php if(is_front_page()): ?> フロントページの時の処理 <?php endif; ?>
is_single()
is_single()
はブログの個別投稿ページが表示されている場合にtrueを返します。
<?php if(is_single()): ?> 個別投稿ページの時の処理 <?php endif; ?>
上の例では、個別投稿ページであればどれでもtrueが返されます。任意の個別投稿のみtrueを返したい場合は、is_single()
にパラメータを指定すればOKです。
<?php if(is_single(19)): ?> 個別投稿ページの時の処理(IDが19) <?php endif; ?>
IDが19の個別投稿ページでのみ、trueが返ります。IDだけではなく、スラッグを指定することもできます。
<?php if(is_single(conditional-tag)): ?> 個別投稿ページの時の処理(スラッグがconditional-tag) <?php endif; ?>
個別投稿ページのタイトルで指定してもOKです。
<?php if(is_single(Conditional Tag)): ?> 個別投稿ページの時の処理(タイトルがConditional Tag) <?php endif; ?>
is_page
is_page
は固定ページを判定する条件分岐タグです。下のように使います。
<?php if(is_page()): ?> 固定ページの時の処理 <?php endif; ?>
is_single()
と同じく、固定ページのIDやスラッグ、タイトルを指定することも可能です。下の例は、IDを指定した例です。
<?php if(is_page(23)): ?> 固定ページの時の処理(IDが23) <?php endif; ?>
固定ページのスラッグを指定した場合。
<?php if(is_page(wordpress-basics)): ?> 固定ページの時の処理(スラッグがwordpress-basics) <?php endif; ?>
ページタイトルを指定した場合です。
<?php if(is_page(WordPress Basics)): ?> 固定ページの時の処理(タイトルがWordpress Basics) <?php endif; ?>
is_category()
カテゴリーのアーカイブページが表示されている場合、trueを返す条件分岐タグです。
<?php if(is_category()): ?> カテゴリーページの時の処理 <?php endif; ?>
任意のカテゴリーでのみtrueを返したい場合は、is_category()
にパラメータを渡します。例えば、下の例ではカテゴリーのIDが7の時だけ処理が行われます。
<?php if(is_category(7)): ?> カテゴリーページの時の処理(IDが7) <?php endif; ?>
スラッグで指定することも可能です。
<?php if(is_category(seo-hacks)): ?> カテゴリーページの時の処理(スラッグがseo-hacks) <?php endif; ?>
カテゴリー名で指定した場合。
<?php if(is_category(Seo Hacks)): ?> カテゴリーページの時の処理(カテゴリー名がSeo Hacks) <?php endif; ?>
is_tag()
タグのアーカイブページかどうかを判定する条件分岐タグになります。
<?php if(is_tag()): ?> タグページの時の処理 <?php endif; ?>
タグのIDを指定した場合。
<?php if(is_tag(3)): ?> タグページの時の処理(IDが3) <?php endif; ?>
タグのスラッグで指定した場合です。
<?php if(is_tag(ios-app)): ?> タグページの時の処理(スラッグがios-app) <?php endif; ?>
タグ名称でも指定できます。
<?php if(is_tag(iOS App)): ?> タグページの時の処理(タグ名称がiOS App) <?php endif; ?>
あとがき
WordPressのカスタマイズに欠かせない、条件分岐タグの基本について解説してきました。冒頭で述べたように、条件分岐タグを活用するとWordPressのカスタマイズが格段に便利になります。ぜひ積極的に採り入れていただければと思います。
なお、条件分岐タブについては、WordPressの公式オンラインマニュアルでも紹介されています。本記事と併せてご活用いただければと思います。