[WordPress] 条件分岐をマスターしよう!

WordPressでサイトを構築していると、「カテゴリー別に記事の一覧を表示」「トップページにのみ特定のコンテンツを表示」「記事の一覧の3番目と4番目の間に広告を自動表示」のようなことをどうしてもやりたくなってしまいますね。

他のサイトを見てみると、自分のサイトにも導入したい機能だらけです。WordPressはプラグインが豊富なので、プラグインだけでも何とかなりますが、自分の思うようなサイトを構築するのであれば、自分でカスタマイズしていったほうが良いです。

カスタマイズする際に重要となるのが「条件分岐」で、これはプログラムでは主役を担う部分になります。

PHPの条件分岐

WordPressはウェブではよく使われる言語であるPHPで作られていますので、まずはPHPの条件式から学んでみましょう。WordPressの関数(条件式)の表記はPHPとは少し異なる独自のものを採用していますが、PHPの関数(条件式)を理解していれば、書き方が変わっているだけということが良くわかります。

条件分岐の代表とも言えるif文は、指定した条件を満たす場合に処理を実行します。
まず、書式を確認してみましょう。

PHPのif文(条件がひとつの場合)

if (条件1) {

    //条件1に該当した場合の処理を記載

} else {

    //条件1に該当しない場合の処理を記載

}

if文は以下のような構文になっています。

書式
if(条件){該当した場合の処理}else{該当しない場合の処理};

さて、実際にプログラムを書いてみましょう。

$a という変数に1を設定します。

$a が1であれば「aの値は1です」、1でなければ「aの値は1ではありません」と表示させるプログラムを作ります。

<?php 

$a=1;

if($a==1){

    echo 'aの値は1です';

} else {

    echo 'aの値は1ではありません';

}

↓プログラム実行結果

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以外です';
}

?>

↓プログラム実行結果

bは2です

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またはB

A || B

A以外

!A

WordPress

WordPressで用意されている条件分岐タグの一覧です。
テンプレートをカスタマイズする場合、これらの条件分岐タグを多用します。
[table id=4 /]

[table id=21 /]



Author: webmaster