WordPressを構築していると条件分岐で処理させることがあります。“カテゴリ1の時の場合、このバナーを表示させる”などという条件をつけて処理を行うことが出来ます。
案件によって処理の仕方が違いますが、よく使うタグをまとめてみました。自分の覚書となるように書いてあるところもありますので気にしないでください。
photo credit: WP グッズ via photopin (license)
ページコンテンツ
1 条件タグの基本の形
1 2 3 |
<?php if ( 条件 ): ?> // 条件に該当する場合の処理 <?php endif; ?> |
これが基本の形となります。条件分岐を上手く使うと無駄にテンプレートファイルを増やさずに済みます。
2 条件分岐の使い方
基本形はわたったけど実際に使うとなった場合の記述がわからないとこには使えないですね。
個別投稿ページ(シングルページ)かどうかを判断する
1 2 3 |
<?php if( is_single( ) ): ?> (ここの部分がシングルページの場合の処理を記述する) <?php endif; ?> |
この形が基本となります。
使い方例
シングルページIDが"5"のときに処理させます。
1 2 3 |
<?php if( is_single('5') ): ?> このシングルページIDは"5"です! <?php endif; ?> |
シングルページのIDが"5"、"8"のうちのどれかのときに処理させます。
1 2 3 |
<?php if( is_single(array( 5, 8 )) ): ?> このシングルページIDは"5"、"8"のどれかです! <?php endif; ?> |
固定ページかどうか判断する
1 2 3 |
<?php if(is_page( ) ): ?> (ここの部分が固定ページの場合の処理を記述する) <?php endif; ?> |
この形が基本となります。
使い方例
この固定ページIDが"3"のときに処理させます。
1 2 3 |
<?php if(is_page('3')): ?> このページはページIDは"3"です! <?php endif; ?> |
固定ページの投稿スラッグが"works"のときに処理させます。
1 2 3 |
<?php if(is_page('works')): ?> このページの投稿スラッグは"works"です! <?php endif; ?> |
カテゴリーページかどうかを判断する
1 2 3 |
<?php if( is_category( ) ): ?> (ここの部分がカテゴリーのアーカイブページが表示されている場合の処理を記述する) <?php endif; ?> |
「is_category」は、カテゴリーアーカイブが表示されているかチェックします。また特定のカテゴリー内の記事かどうかを判断するのには、in_category を使います。
使い方例
カテゴリーIDが"2"の記事を表示させます。
1 2 3 |
<?php if(is_category('2')): ?> カテゴリーIDが"2"の記事を表示します。 <?php endif; ?> |
この要領で以下のタグを使って条件分岐を良く使います。
is_tag()
タグのアーカイブページが表示されている場合。
is_date()
日付別のアーカイブページのいずれかが表示されている場合。
is_404()
"HTTP 404: Not Found"エラーページが表示されている場合。
is_archive()
各アーカイブページが表示されている場合。
is_search()
検索結果のページが表示されている場合。
is_post_type_archive()
パラメータに指定した投稿タイプのアーカイブページの場合。
is_tax()
パラメータに指定したタクソノミーページのアーカイブページの場合。
3 条件が複数の時の使い方
WordPress上級者への道として、条件分岐をひとつひとつ書いていたら記述が長くなるのでまとめて記述します。条件が複数ある場合
1 2 3 4 5 6 7 |
<?php if ( 条件1 ): ?> // 条件1に該当する場合の処理 <?php elseif ( 条件2 ): ?> // 条件1に該当せず 且つ 条件2に該当する場合の処理 <?php elseif ( 条件3 ): ?> // 条件1・2に該当せず 且つ 条件3に該当する場合の処理 <?php endif; ?> |
この形が基本となります。
条件が複数ある場合
例えばシングルページによって表示させるものを変えるときに使います。
使い方例
1 2 3 4 5 6 7 |
<?php if(is_single('2')) : ?> この記事のページIDは"2"です! <?php elseif(is_single(array(3, 4))) : ?> この記事のページIDは"3, 4"のうちのどれかです! <?php elseif(is_single('9')) : ?> この記事のページIDは"9"です! <?php endif ?> |
4 まとめ
以上、WordPressでよく使う条件分岐の基本について紹介しました。難しいことはやっていませんので始めたばかりの方や条件分岐の記述があいまいな方など参考にしていただけるとうれしいです。
[amazonjs asin="4844337092" locale="JP" title="いちばんやさしいWordPressの教本 人気講師が教える本格Webサイトの作り方 第2版 WordPress 4.x対応 (「いちばんやさしい教本」シリーズ)"]