
WordPressでサイトを構築していると、「カテゴリー別に記事の一覧を表示」「トップページにのみ特定のコンテンツを表示」「記事の一覧の3番目と4番目の間に広告を自動表示」のようなことをどうしてもやりたくなってしまいますね。
他のサイトを見てみると、自分のサイトにも導入したい機能だらけです。WordPressはプラグインが豊富なので、プラグインだけでも何とかなりますが、自分の思うようなサイトを構築するのであれば、自分でカスタマイズしていったほうが良いです。
カスタマイズする際に重要となるのが「条件分岐」で、これはプログラムでは主役を担う部分になります。
PHPの条件分岐
WordPressはウェブではよく使われる言語であるPHPで作られていますので、まずはPHPの条件式から学んでみましょう。WordPressの関数(条件式)の表記はPHPとは少し異なる独自のものを採用していますが、PHPの関数(条件式)を理解していれば、書き方が変わっているだけということが良くわかります。
条件分岐の代表とも言えるif文は、指定した条件を満たす場合に処理を実行します。
まず、書式を確認してみましょう。
PHPのif文(条件がひとつの場合)
if (条件1) { //条件1に該当した場合の処理を記載 } else { //条件1に該当しない場合の処理を記載 }
if文は以下のような構文になっています。
さて、実際にプログラムを書いてみましょう。
$a という変数に1を設定します。
$a が1であれば「aの値は1です」、1でなければ「aの値は1ではありません」と表示させるプログラムを作ります。
<?php $a=1; if($a==1){ echo 'aの値は1です'; } else { echo 'aの値は1ではありません'; }
↓プログラム実行結果
$a=2; と変数 $a の値を変更してプログラムを実行すると「aの値は1ではありません」と表示されるようになります。
PHPのif文(条件が複数の場合)
if (条件1) { //条件1に該当した場合の処理を記載 } elseif(条件2) { //条件2に該当した場合の処理を記載 } elseif(条件3) { //条件3に該当した場合の処理を記載 } else { //上記のどれにも該当しない場合の処理を記載 }
複数条件のプログラムを作成してみます。
変数が1であれば「bは1です」
変数が2であれば「bは2です」
変数が3であれば「bは3です」
変数が1〜3以外であれば「bは1,2,3以外です」
と表示させます。
<?php $b=2; if($b==1){ echo 'bは1です'; }elseif($b==2){ echo 'bは2です'; }elseif($b==3){ echo 'bは3です'; }else{ echo 'bは1,2,3以外です'; } ?>
↓プログラム実行結果
WordPressの条件分岐
さて、PHPのif文のプログラムは理解できたでしょうか?
今度は、WordPressのif文の書式を学んでみましょう。
条件がひとつの場合
<?php if(条件1 ): ?> //条件1に該当した場合の処理を記載 <?php else: ?> //条件1に該当しない場合の処理を記載 <?php endif; ?>
WordPressではHTMLのタグとプログラムが混在する場合が多いので、テンプレート内にHTMLは直接記載、PHP部分は<?php ?> で記載するようになっています。
注意すべき点は「if(条件1 ):」「else:」の最後が「:」(コロン)で終わっているという点です。
このプログラムを実行するのは最後の部分の「;」(セミコロン)になっていますので、それまでの間はプログラムが続いているという意味になります。PHPでは{}で表記していましたが、WordPressではコロン表記になっています。
条件が複数の場合
<?php if(条件1): ?> //条件1に該当した場合の処理を記載 <?php elseif(条件2): ?> //条件2に該当した場合の処理を記載 <?php elseif(条件3): ?> //条件3に該当した場合の処理を記載 <?php else: ?> //上記のどれにも該当しない場合の処理を記載 <php endif; ?>
実際の利用シーンを考えてみます。
例えば、カテゴリーページでカテゴリー別に表示内容を変更したりする場合にこの分岐が使えます。カテゴリー別にタイトルを画像で作成しておき、カテゴリー毎に別々のタイトル画像を出すなんて感じで使えますね。
プログラムが使えないとカテゴリー別にページを作成することになり、カテゴリー数が多いと酷いことになってしまいますが、プログラムが使えれば1ページで済んでしまいます。
論理演算子
実際にWordPressで条件式を使うときの条件は、上記のような$a=1;などという簡単なものばかりではありません。
「カテゴリー1」と「カテゴリー2」を表示させたいとか、「カテゴリー3」だけは表示させたくないとか、複雑な条件設定がたくさん考えられます。
そこで登場するのが「論理演算子」というものです。
AかつB
AまたはB
A以外
WordPress
WordPressで用意されている条件分岐タグの一覧です。
テンプレートをカスタマイズする場合、これらの条件分岐タグを多用します。
[table id=4 /]
[table id=21 /]