php初心者でもif文の使い方を覚えることで、WordPressをカスタマイズすることができるようになります。WordPressのデザイン的な部分ではなく、機能的な部分を理解し、自分なりに手を加えることができるようになります。
if文というのは指定した条件によって指示を変えるもので、こういった使い方になります。
if(条件){条件を満たしていたときに実行する指示}
概要と分解
if文を覚え方をこちらのツールを例にしていきますが、選択した項目によって指定の文字を表示させる。というようなプログラムをで作っています。
選択する項目としてはこんな感じです。
<form method="post"> <select name="material1"> <option value="">選択して下さい</option> <option value="シルク">シルク</option> <option value="コットン">コットン</option> <option value="ウール">ウール</option> <option value="リネン">リネン</option> </select> </form>
これを例として説明していくと、素材を選ぶ場合、シルクとコットンとウール、リネンがあり、シルクを選べばシルクという文字が表示され、コットンを選べばコットンという文字が表示されるようにしています。
ざっくりとした流れとしては、valueで設定した文字などのデータを、function.phpというWordPressの心臓部分に送り、処理して新しいページで表示させます。
こちらのページでも詳しく説明しています。
phpにしてみると、こういったif文です。
function material_func() { $material1 = $_POST["material1"]; if($material1 === "シルク"){ echo 'このネクタイの生地はシルクです。'; }else if($material1 === "コットン"){ echo 'このネクタイの生地はコットンです。'; }else if($material1 === "コットン"){ echo 'このネクタイの生地はコットンです。'; }else if($material1 === "ウール"){ echo 'このネクタイの生地はウールです。'; }else echo 'このネクタイの生地はリネンです。'; } add_shortcode('printmaterial', 'material_func');
php初心者の段階では謎の呪文ですね。(笑)
これを丸々理解しようとするとパニックになるので、見るのは3行目と11行目の } まで。
これを取り出すと、こうなります。
if($material1 === ""){}
さらに$material1をAという文字に置き換えると
if(A === ""){}
となります。ちなみに「” “」の部分はここに文字や数字といったデータが入る部分で「”シルク”」といった使い方をします。このif文では「” “」は何もないので空っぽということになります。
ifというのは、もし○○であれば、という意味なので、このif文が意味するのはAが空っぽであれば { } の部分を実行しまししょう。ということ。「===」はとりあえず 「=(イコール)」で覚えておけば大丈夫です。
if(A = ""){}
データの動きとしては、select nameで設定したmaterial1という文字が、選択した項目(データ)を入れる箱となり、WordPress内で行き来します。
表示されているページで選択されたデータが、material1という箱の中に入れられ、WordPress内部にあるfunction.phpというページに移動し、if文によって箱の中身は何なのかを判別します。
判別ができたら、次の指示として選択されたデータ(文章)を、ウェブサイトの新しいページ表示させる。といった具合です。
if文を覚える
条件を満たしている
では、このif文を覚えるわけですが…
選択させたい項目をナロータイ、レギュラータイという2項目だとして、ナロータイが選択されたらそれの説明をする。といったif文を作るとすれば、
if(A = "ナロータイ"){このネクタイはナロータイです。}
という形になり、裏を返せばレギュラータイが選択されれば何もしない。というif文のphpになります。
{ }の中身をページで表示させるには
echo 'このネクタイはナロータイです。';
という形式で記述し
if(A = "ナロータイ"){echo 'このネクタイはナロータイです。';}
といった感じになります。(カンタンに書くとです。)
ということで、{ }の中身を変えることで、表示させる内容を変えることができます。
if(A = "ナロータイ"){echo 'このネクタイは幅6cmです。';}
条件を満たさない場合の指示
今度は段落(改行)をいれますが、ナロータイ、レギュラータイのどちらを選んでも、説明を表示させるには、
if(A = "ナロータイ"){ echo 'このネクタイはナロータイです。'; }else if(A = "レギュラータイ"){ echo 'このネクタイはレギュラータイです。'; }
if(条件1){条件1を満たしたときの指示}else if(条件2){条件1を満たしたときの指示}
基本的なif文の後ろに「else 」を加えさらにif文を追加することで可能です。
このように、選択項目にあわせて条件を増やしていくことで、指示項目も増やすことができます。
ですが、elseというのは「その他」という意味。最初のifの条件に当てはまらない場合は、次の指示を実行するということなので、選択項目が2つの場合、elseにifを付け足す必要はなく、elseだけで十分です。
これより
if(条件1){ 条件1を満たしたときの指示 }else if(条件2){ 条件2を満たしたときの指示 }
このほうがスッキリします。
if(条件1){ 条件1を満たしたときの指示 }else{ 条件1以外だったときの指示 }
データの流れとif文の作り方
固定ページ
このif文をデータの流れに沿って組み立て直すと、
固定ページでformというタグでfunction.phpにデータを送るために、
<form method="post"></form>
というhtmlを作ります。
次に、formタグの中にselectタグを入れ、データを送るための箱の名前を決めます。
<form method="post"> <select name="material1"></select> </form>
そして、選んでもらうデータを作る。
<form method="post"> <select name="material1"> <option value="シルク"></option> <option value="コットン"></option> </select> </form>
さらにページに表示させる名前も入れる。
<form method="post"> <select name="material1"> <option value="シルク">シルク</option> <option value="コットン">コットン</option> </select> </form>
WordPress内部
function.php内で作るif文は
$material1 = $_POST["material1"];
固定ページで作った箱、「material1」を 「_POST」という箱に入れて、function.phpで受け取ります。受け取り先は、function.php内の『material1』。
少しややこしいかもしれませんが、「_POST」と『material1』は中身がその都度変わるため、変数という名前の箱として取り扱います。なのでphpのルールとして頭に$マークがつくのです。
固定ページからデータを受け取った$material1は、次の指示をするため、中身がシルクであるかを判別します。
$material1 = $_POST["material1"]; if($material1 = "シルク"){ (← =の使い方は簡素化) echo 'このネクタイの生地はシルクです。'; }else{ echo 'このネクタイの生地はコットンです。'; }
今回は固定ページを利用したif文の使い方です。厳密にはもう少し付け足す必要がありますが、if文は基本的にはこのような形なので、php初心者の段階でも、if文をいじることができるようになります。