WordPressを構築するためのPHPの基礎

WordPressの構築・カスタマイズ・ソースコードの解読・エラーが出たときの対処をするにあたり、少なからずはPHPの知識が必要なので基礎をまとめておきます。
PHPの基本的な記述のルールについて
ファイルの拡張子について
PHPのファイルの拡張子は「.php」であることが必要です。
WordPressのテーマを作成するときも同様で、ファイル名を「index.php」の様にします。
PHPの開始と終了
PHPは「<?php」から始まって、「?>」で終わる必要があります。この間に記述されたコードがPHPのプログラムとなります。
<?php echo "こんにちは" ; ?>
ファイルの最後がPHPのプログラムで終わるときは最後の「?>」は省略できます。
WordPressではfunctions.phpとかで省略されている場合が多いです。
コメントアウトの方法
PHPでは一行用と複数行用の2種類の書き方があります。
<?php //一行用のコメントアウト /* 複数行用のコメントアウト */ ?>
「//」が一行用のコメントアウトで、「/*~*/」で囲った範囲が複数行のコメントアウトになります。
文字列の表示について
PHPで文字列を出力するときは「echo」を使います。文字列は「’」(シングルクォーテーション)で囲むか「”」(ダブルクォーテーション)で囲む必要があります。
<?php echo 'カピバラ' ?>
「カピバラ」と表示されます。
セミコロンで分離する
文の最後に「;」(セミコロン)を付ける必要があります。これは複数の文を区切るために必要になります。最終行は「;」を省略できます。
<?php echo 'カピバラ<br>'; echo 'カピバラ<br>'; echo 'カピバラ<br>' ?>
文字列の連結
文字列と文字列を連結するときは「.」(ドット)を付けます。
<?php echo 'カピバラが' . 'たくさんいるよ。'; ?>
変数と配列について
変数
変数とは一時的に値を保存しておく為の「箱」のようなものです。PHPの変数は、「$」(ドル)を頭に付け、半角英数と「_」(アンダースコア)を使用して変数名を付けます。
ただし、変数名の頭に数字を付ける事はできません。
変数に値を入れるには「=」(イコール)、代入演算子を使います。
例えば変数「$animal」に値、カピバラを代入するときは、「$animal = ‘カピバラ’」となります。
代入済みの変数に対して新たに値を代入すると、内容が上書きされます。
<?php $animal = 'カピバラが一匹'; echo $animal; //カピバラが一匹と表示される。 $animal = 'カピバラが二匹' echo $animal; //カピバラが二匹と表示される。 ?>
文字列の連結と組み合わせると、以下のような出力ができます。
<?php $animal ='カピバラ'; echo 'たくさんの' . $animal . 'がいるよ。' //「たくさんのカピバラがいるよ。」と表示されます。 ?>
配列
配列を使うと、複数の値を記憶させることができます。配列は、「array()」を使って作成し、値を「,」(カンマ)で区切って代入します。
<?php $animal = array('カピバラ', 'ウサギ', 'イヌ',); ?>
配列には先頭から順番に値が入ります。値をとりだすには「[]」(ブラケット)を使って順番を指定します。配列の要素は0,1,2…と1からではなく0から始まります。
<?php $animal = array('カピバラ', 'ウサギ', 'イヌ',); echo $animal[0]; //カピバラと表示する。 echo $animal[2]; //イヌと表示する。 ?>
$animalという配列の中に、0から順番にデータを保存しておくイメージとなります。
連想配列
0、1、2といった数字ではなく、文字をキーにして配列を作成することもできます。これを連想配列といいます。連想配列は「array」を使って「’文字のキー’ => 値」を「,」(カンマ)で区切って指定します。
<?php $animal = array( 'capybara' => 'カピバラ', 'rabbit' => 'ウサギ', 'dog' => 'イヌ' ); echo $animal['capybara']; //カピバラと表示する。 echo $animal['rabbit']; //ウサギと表示する。 ?>
変数を使用した計算
変数には計算結果を代入することができます。代数演算子を使います。
<?php $addition = 5 + 5; //加算 echo $addition; //10と表示する。 $subtraction = 6 - 1; //減算 echo $subtraction; //5と表示する。 $multiplication = 8 * 2; //乗算 echo $multiplication; //16と表示する。 $division = 15 / 3; //除算 echo $division; //5と表示する。 $surplus = 5 % 3; //剰余 echo $surplus; //2と表示する。 $power = 4 ** 2; //累乗 echo $power; //16と表示する。 ?>
条件分岐
if文を使った条件分岐
変数の値によって処理を変えたいときはifを使用します。
<?php if(条件式){ //処理を記述 } ?>
条件式にはいろんな条件が記述できます。その条件に満たした時に内側の処理が実行されます。
論理値
ifの条件式は、結果が「true」(真、正しい)か「false」(偽、正しくない)のどちらかを判定します。
<?php $flg = true; if($flg){ echo '$flgはtrueです。'; //$flgはtrueです。と表示されます。 } ?>
比較演算子
変数に格納された値を使って条件式を記述できます。例えば「変数$numの値が100より大きい場合」という条件は「$num > 100」と記述します。
<?php $num = 101; if($num > 100){ echo '$numは100より大きいです。' //表示されます。 } ?>
「>」は比較演算子といいます。PHPでは比較演算子というものがあります、一覧は下記です。
PHPの比較演算子
比較演算子 | 記述例 | 意味 |
---|---|---|
== | a == b | aとbの値が等しい |
=== | a === b | aとbの値が等しく、型も等しい |
!= | a != b | aとbの値が等しくない |
<> | a <> b | aとbの値が等しくない |
!== | a !== b | aとbの値が等しくない、もしくは型が等しくない |
> | a > b | aはbより大きい |
>= | a >= b | aはbより大きい、または等しい |
< | a < b | aはbより小さい |
<= | a <= b | aはbより小さい、または等しい |
論理演算子
論理演算子を使うと、複数の条件を組み合わせる事ができます。「$numが5より大きく、10より小さい場合」という条件式ができます。
<?php $num = 7; if($num > && $num < 10){ echo '$numが5より大きく、10より小さいです。'; //表示されます。 } ?>
PHPの論理演算子
論理演算子 | 記述例 | 意味 |
---|---|---|
&&またはand | a && b | aとbが両方ともtrueの場合 |
||またはor | a || b | aとbのどちらかがtrueの場合 |
!a | !a | aがtrueならばfalse |
複雑な条件分岐
ifの条件式を満たさなかったときに、別の処理を実行したい場合はelseを使用します。
<?php $num = 10; if($num > 15){ echo '$numは15より大きい。' } else{ echo '$numは15より小さい。' //こっちが表示されます。 } ?>
また、条件が複数存在するときはelseifを使います。elseifは複数使用することができます。
<?php $name = 'カピバラ'; if($name == 'イヌ'){ echo '$nameは「イヌ」です。'; }elseif($name == 'ウサギ'){ echo '$nameは「ウサギ」です。'; }elseif($name == 'カピバラ'){ echo '$nameは「カピバラ」です。'; //これが表示されます。 }else{ echo '$nameはどれにも当てはまりませんでした。'; } ?>
if文の別の記述方法
if文は最初の部分を「if(条件式):」に、最後の部分を「endif;」と記述することができます。この書き方はHTMLが主たるファイルの中にPHPの記述をするときに使用すると可読性が高まります。
WordPressの場合、テーマのテンプレートファイルにはこの記述方法がよく使用されます。functions.phpのようなPHPが主たるファイルには「{」と「}」を使用した記述方法が多くなります。
<?php $name = 'カピバラ' if($name == 'イヌ'): ?> $nameは「イヌ」です。 <?php elseif($name == 'ウサギ'): ?> $nameは「ウサギ」です。 <?php elseif($name == 'カピバラ'): ?> $nameは「カピバラ」です。 <!--これが条件にあてはまる--> <?php else: ?> $nameはどれにもあてはまりません。 <?php endif; ?>
繰り返し処理
PHPには処理を繰り返す方法が複数存在します。WordPressでは「while」と「foeach」が良く使われます。
while文
whileはWordPressでメインループの記述等、最も良く使われる繰り返し処理です。指定した条件式を満たす間、ブロック内の処理を繰り返します。
<?php while(条件式){ //実行する処理 } ?>
whileは、条件式がfalseにならないとずっと処理を繰り返してしまいます。そのため、ブロック内で条件式が変化する仕組みになっていないと、無限にループ処理をしてしまいます。
<?php $num = 0; while($num > 3){ echo $num; $num ++; //ループ毎に$numに1を加算 } ?>
このように加算子の「++」(インクリメント)を使用し、記述するとループするたびに$numに1が加算されます、3になるまでループを繰り返します。
加算子と減算子について
例 | 名前 | 効果 |
---|---|---|
++$a | 前置加算子 | $aに1を加え、$aを返します。 |
$a++ | 後置加算子 | $aを返し、$aに1を加えます。 |
−−$a | 前置減算子 | $aから1を引き、$aを返します。 |
$a−− | 後置減算子 | $aを返し、$aから1を引きます。 |
なお、ifと同様に「{」と「}」ではなく、endwhileを使った記述方法もあります。WordPressのループのお決まりの記述方法です。
<?php while(have_posts()) : the_post(); ?> <p> <?php the_title(); ?> </p> <?php endwhile; ?>
foreach文
foreachは、配列の中身を表示するときに便利な記述方法です。
<?php foeach(配列 as 要素){ //実行する処理 } ?>
要素にはループ時の配列の値が格納されます。以下のように記述すると、「カピバラ」、「イヌ」、「ウサギ」の順番で表示されます。
<?php $animal = array('カピバラ', 'イヌ', 'ウサギ') ; foeach($animal as $value){ echo $value; } ?>
foreachは連想配列でも使用できます。キーにはループ時の配列のキーが格納されます。
<?php foreach(配列 as キー => 要素){ //実行する処理 } ?>次のように記述すると、「capybaraはカピバラです。」のように、順番に表示されます。
<?php $animal = array('capybara' => 'カピバラ','dog' => 'イヌ', 'rabbit' => 'うさぎ',); foreach($animal as $key => $value){ echo $key . 'は' . $value . 'です。<br>'; } ?>
foreachの別の記述方法
<?php foreach(配列 as 要素): ?> //実行する慮理 <?php endforeach; ?>
ユーザー定義関数
関数
関数を用いると、再利用できるコードやひと固まりのロジックをまとめる事が出来ます。関数を定義するには、functionを使用して関数名を記述します。引数(パラメータ)を使うと、関数にデータを渡すことができますが、必須ではないです。
<?php function 関数名(引数){ //実行する処理を記述 } ?>
関数を呼び出すには「関数名()」の書式を使います。例では「カピバラ」という文字列を出力するだけのシンプルな関数を作成します。
<?php function display_capybara(){ echo 'カピバラ'; } display_capybara(); //ここでカピバラという文字列が表示されます。 ?>
引数
引数(パラメータ)を使用すると、関数にデータを渡すことが可能です。先程の関数の例ではechoで文字列を出力しましたが、returnを使用して結果を返すことができます。この関数から返ってきた値を「戻り値」といいます。
引数の2つの数値を足して返す関数
<?php function add($n1, $n2){ $answer = $n1 + $n2; return $answer; } $num = add(4, 5); echo $num; //9が表示される ?>
上記の例では戻り値を$numに代入した後にechoで表示しましたが、戻り値を直接echoで表示することもできます。
<?php function add($n1, $n2){ $answer = $n1 + $n2; return $answer; } echo add(3, 5) //8が表示される ?>
まとめ
WordPressはGPL(GNU General Public License)を採用しておりオープンソースで色んなコードが配布されてます。
基本はコードをコピペしてカスタマイズをしていくというやり方でいいのですが、そもそもどういう意味でコードが書かれいる、プログラムが動いているかをを知るためにはやっぱり基礎が大事ですね。