WordPressの条件分岐とは?
WordPressの条件分岐とは、例えば、TOPページとアーカイブページでサイドコンテンツの表示内容を変えるなど、条件によって処理を分岐させることです。
・TOPページにはバナー広告を表示したいけど、アーカイブページでは非表示にしたい。
・投稿ページにはプロフィールを表示したいけど、アーカイブページでは非表示にしたい。
・TOPページと固定ページでメニューの内容を変更したい。
・etc…
条件分岐を覚えておけば、上記の様な処理の分岐を簡単に行うことが出来るようになります。
WordPressテーマの開発などでは、必ず必要になるスキルの一つです。
WordPressの条件分岐はPHPコードで定義します。
そのため、PHPコードが動作しない投稿や固定ページのエディタでは使用できません。
テーマのテンプレートファイルで使用することになります。
覚えておきたい4つの条件分岐
条件がひとつの時
指定した条件に該当すれば、特定の処理を行う場合です。
以下のように記述します。
<?php if ( 条件 ): ?>
条件に該当する場合は、この部分に記述した処理が行われます。
<?php endif; ?>
太文字部分には、好きな処理を記述してください。
条件がひとつの時(条件にマッチしないときの処理を加える)
条件に該当するかしないかで処理を分ける場合です。
以下のように記述します。
<?php if ( 条件 ): ?>
条件に該当する場合は、この部分に記述した処理が行われます。
<?php else: ?>
条件に該当しない場合は、この部分に記述した処理が行われます。
<?php endif; ?>
太文字部分には、好きな処理を記述してください。
条件が複数の時
指定したいずれかの条件に該当すれば、その条件下の処理を行う場合です。
以下のように記述します。
<?php if ( 条件1 ): ?>
条件1に該当する場合は、この部分に記述した処理が行われます。
<?php elseif ( 条件2 ): ?>
条件1に該当せず条件2に該当する場合は、この部分に記述した処理が行われます。
<?php elseif ( 条件3 ): ?>
条件1と条件2に該当せず条件3に該当する場合は、この部分に記述した処理が行われます。
<?php endif; ?>
太文字部分には、好きな処理を記述してください。
条件を追加したい場合は、<?php endif; ?>の上部に、
<?php elseif ( 条件4 ): ?>
条件4に該当する場合は、この部分に記述した処理が行われます。
上記の要領でコードを追加していけばOKです。
条件が複数の時(どの条件にもマッチしないときの処理を加える)
指定したいずれかの条件に該当するかしないかで処理を分ける場合です。
以下のように記述します。
<?php if ( 条件1 ): ?>
条件1に該当する場合は、この部分に記述した処理が行われます。
<?php elseif ( 条件2 ): ?>
条件1に該当せず条件2に該当する場合は、この部分に記述した処理が行われます。
<?php elseif ( 条件3 ): ?>
条件1と条件2に該当せず条件3に該当する場合は、この部分に記述した処理が行われます。
<?php else: ?>
上記のいずれにも該当しない場合は、この部分に記述した処理が行われます。
<?php endif; ?>
太文字部分には、好きな処理を記述してください。
条件を追加したい場合は、<?php else: ?>の上部に、
<?php elseif ( 条件4 ): ?>
条件4に該当する場合は、この部分に記述した処理が行われます。
上記の要領でコードを追加していけばOKです。
ちょっと突っ込んだ条件分岐
複数の条件に該当する場合
【条件1】と【条件2】の両方に該当すれば、特定の処理を行う場合です。
<?php if ( 条件1 && 条件2 ): ?>
条件1と条件2の両方に該当する場合の処理を記述する。
<?php endif; ?>
条件の個数は自由に増やすことが出来ます。
【条件1 && 条件2 && 条件3】といった感じで増やすことが出来ます。
どちらかの条件に該当した場合
【条件1】と【条件2】のどちらかに該当すれば、特定の処理を行う場合です
<?php if ( 条件1 || 条件2 ): ?>
条件1と条件2のどちらかに該当する場合の処理を記述する。
<?php endif; ?>
条件の個数は自由に増やすことが出来ます。
【条件1 || 条件2 || 条件3】といった感じで増やすことが出来ます。
条件に該当しない場合
【条件】に該当しない場合のみ、特定の処理を行う場合です。
<?php if ( ! 条件 ): ?>
条件に該当しない場合の処理を記述する。
<?php endif; ?>
WordPressの条件分岐タグ
ここまでに条件分岐の記述方法を見てきました。
ここでは、WordPressで利用できる【条件分岐タグ】の主だったものを一覧で御覧に入れます。
is_home() | ホームページが表示されている場合。 |
---|---|
is_front_page() | フロントページが表示されている場合。 |
is_single() | 投稿ページが表示されている場合。 投稿IDを指定するなどパラメーターを設定することができます。 複数のパラメーターを設定する事も可。 |
is_page() | 固定ページが表示されている場合 固定ページのIDを指定するなどパラメーターを設定することができます。 複数のパラメーターを設定する事も可。 /td> |
is_category() | カテゴリーページが表示されている場合。 カテゴリーIDを指定するなどパラメーターを設定することができます。 複数のパラメーターを設定する事も可。 |
is_tag() | タグページが表示されている場合。 こちらもパラメーターを設定することが可能です。 |
is_archive() | 各アーカイブページが表示されている場合。 パラメーターの設定が可能です。 |
is_search() | 検索結果のページが表示されている場合。/td> |
is_404() | 404ページ(エラーページ)が表示されている場合。 |
よく使う条件をまとめてみました。
この他にもワードプレスには様々な条件分岐タグがあります。。
興味のある方は【WordPressの条件分岐を41個まとめてみました!】を参照してください。
WordPressの条件分岐タグを使ったサンプルコード
WordPressの条件分岐タグを使っていくつかの条件分岐を書いてみました。
以下の様な要領で使用しましょう。
ホームページのみ文章を表示する。
<?php if ( is_home() ): ?>
ここはホームページです。
<?php endif; ?>
ホームページとその他のページで文章を変える。
<?php if ( is_home() ): ?>
ここはホームページです。
<?php else: ?>
ここはホームページじゃないよ。
<?php endif; ?>
ページの種類で文章を変える。
<?php if ( is_home() ): ?>
ここはホームページです。
<?php elseif ( is_single() ): ?>
ここは投稿ページです。
<?php elseif ( is_page() ): ?>
ここは固定ページです。
<?php else: ?>
ここはホームページでも投稿ページでも固定ページでもありません。
<?php endif; ?>
特定の固定ページの場合のみ要素を表示させる
<?php if ( is_page('9') ): ?>
ここに記述した内容が、投稿IDが"9"の固定ページのみに表示されます。
<?php else: ?>
<?php endif; ?>
上記の【9】の部分に要素を表示させたいページの投稿IDを記述してください。
投稿ページで同じ処理をする場合、【is_page】を【is_single】に書き換えてください。
いずれかの固定ページの場合に要素を表示させる
<?php if ( is_page(array(9, 10, 100)) ): ?>
ここに記述した内容が、投稿IDが"9"、"10"、"100"の固定ページのみに表示されます。
<?php else: ?>
<?php endif; ?>
上記の【9, 10, 100】の部分に要素を表示させたいページの投稿IDを記述してください。
最後の投稿IDには【,】は必要ありません。
投稿ページで同じ処理をする場合、【is_page】を【is_single】に書き換えてください。
参考にしてください。
まとめ
WordPress条件分岐の基本を解説してみました。
この条件分岐を知っているのと知らないのとでは雲泥の差があります。
テーマの開発などする場合は、絶対必要になるスキルですので覚えておくと良いですよ。
今回のコンテンツがどなたかのお役に立てば幸いです。
よく使う条件分岐を42種類を以下の記事にまとめてみたのでご確認ください。
⇒ 【保存版】WordPressの条件分岐を42個まとめてみました!
コメントを残す